【发布时间】:2018-04-03 14:27:14
【问题描述】:
我有一个场景,我需要在 @Test 方法中生成一个关键的第一行。我需要给出通用的解决方案来实现这一点。我们已经有了生成令牌的自定义类文件,它应该在 @Test 方法中生成。
到目前为止,我们在所有 @Test 方法中都有以下代码行。它似乎是重复的,想对此给出一些通用的解决方案。我们想创建一个监听器,它会在 @Test 方法进行时执行,并且在执行该方法中实际存在的第一行代码之前。
代码如下:
@Test
public void getSearchMach()
{
//The AutoKeyGenerator is a class which has getKey() method and return
//type as String
String getkey=AutoKeyGenerator.getKey();
//Some logic will go here.
}
以上行应放在所有测试方法的第一行。我不想到处重复并创建一个听众,它将以聪明的方式做同样的活动。 like 一个监听器将执行该行,然后执行剩余的行。我已经使用了@BeforeMethod、@BeforeClass 和 @BeforeSuite,它们不起作用并将 null 作为字符串值返回。
【问题讨论】:
-
据我从查询中了解到,您可以在类中将变量(getKey)声明为静态,并确保您永远不会在测试方法中定义同名的局部变量。如果这不是问题,请提供有关该问题的更多信息。
-
如果我创建了一个泛型方法,它仍然是重复的,我应该将它称为所有 @Test 方法。我不想在所有测试方法中重复代码。而不是我想将它保留在侦听器中,它将在调用测试时执行 getKey() 操作。
-
让我举个例子说明我想从我这边解释什么。
-
@ArrcanaMohan - 你对这个值究竟做了什么?您拥有的每个
@Test是否都在使用它? -
是的。它的签名密钥需要传入每个 @Test 方法。每个测试方法代表不同的 API 调用,方法结束时将断言响应有效负载。这就是我们设计脚本的方式。它需要在每个方法中调用 getKey() 并将密钥作为请求负载中的标头传递。