Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次在其他测试方法之前调用一个测试方法_Java_Unit Testing_Testng - Fatal编程技术网

Java 每次在其他测试方法之前调用一个测试方法

Java 每次在其他测试方法之前调用一个测试方法,java,unit-testing,testng,Java,Unit Testing,Testng,我有一个测试方法,如下所示,另外两个测试方法依赖于此方法,此方法每次都应该在这两个方法之前运行,而不是两个方法都只运行一次 @Test(dataProvider = "requestParameterProvider", groups = "jsonRequest") public void saveNewActivity_correctValues(Service service, Map<String, Object> requestMap){} @Test(depe

我有一个测试方法,如下所示,另外两个测试方法依赖于此方法,此方法每次都应该在这两个方法之前运行,而不是两个方法都只运行一次

 @Test(dataProvider = "requestParameterProvider", groups = "jsonRequest")
 public void saveNewActivity_correctValues(Service service, 
 Map<String, Object> requestMap){}

 @Test(dependsOnMethods = "saveNewActivity_trackRequest_correctValues", dataProvider = "responseParameterProvider")
public void commitActivity_correctValues(Service service){}

@Test(dependsOnMethods = "saveNewActivity_trackRequest_correctValues", dataProvider = "exceptionParameterProvider")
public void failActivity_correctValues(Service service, FailureReason failureReason){}
测试(dataProvider=“requestParameterProvider”,groups=“jsonRequest”) public void saveNewActivity_correctValues(服务、, 映射请求映射){} @测试(dependsOnMethods=“saveNewActivity\u trackRequest\u correctValues”,dataProvider=“responseParameterProvider”) 公共无效承诺{u纠正价值观(服务){} @测试(dependsOnMethods=“saveNewActivity\u trackRequest\u correctValues”,dataProvider=“exceptionParameterProvider”) public void failActivity_correctValues(服务、故障原因、故障原因){}
在上述情况下,saveNewActivity\u correctValues方法首先运行一次,然后再运行另外两个方法。但我希望第一个方法在每个依赖方法之前调用两次,并作为单独的测试调用一次。我不能将第一个方法设置为@BeforeMethod,因为它已经是一个测试,并且有自己的提供者

在所有测试之前,对要运行的方法使用
@Before
注释

如果您不希望它在所有方法之前运行,而只在某些方法之前运行,那么可以将测试重构为两个类,并在其中一个类中使用
@before
,而不是在另一个类中使用
@before,并适当地移动您的方法

另一个选项是只调用您希望它们在运行之前运行的每个测试中的方法

我假设您使用的是JUnit—请参见此处:


如果没有,请用您正在使用的内容更新您的帖子。

只需编写一个方法,并在测试开始时添加对该方法的调用。我想首先寻找一种解决此问题的标准方法,因为我希望有一个数据提供程序,使用简单的方法,我不能这样做,但谢谢。这是否回答了您的问题?不,这些注释不接受数据提供程序,也不会作为单独的测试方法工作,因此没有帮助。谢谢,因为我提到我想为第一个测试提供一个数据提供程序,并将其作为测试运行,但我不能将数据提供程序与@Before一起运行,也不能将其作为单独的测试运行。我有junit和testng。谢谢