Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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 jUnit重置变量或保留静态变量_Java_Unit Testing_Groovy_Junit4 - Fatal编程技术网

Java jUnit重置变量或保留静态变量

Java jUnit重置变量或保留静态变量,java,unit-testing,groovy,junit4,Java,Unit Testing,Groovy,Junit4,目前,我正在使用Groovy创建一些Selenium测试。我对每个部分都有一个单独的测试类,步骤是测试方法。在中,测试按顺序运行,以检查步骤是否正确。对于测试,我使用JUnit4.11 在我的测试(例如登录)中,我有一个全局变量电子邮件。此变量在测试为此测试(整个测试类)创建额外帐户后填充。我在每个测试类中都执行此过程,以获得一个运行良好的新帐户 我现在的问题是,如果我不将email设置为static,jUnit将在类中的每个测试之后驻留email变量。但如果我将其设置为静态并运行另一个测试(例

目前,我正在使用Groovy创建一些Selenium测试。我对每个部分都有一个单独的测试类,步骤是测试方法。在中,测试按顺序运行,以检查步骤是否正确。对于测试,我使用JUnit4.11

在我的测试(例如登录)中,我有一个全局变量电子邮件。此变量在测试为此测试(整个测试类)创建额外帐户后填充。我在每个测试类中都执行此过程,以获得一个运行良好的新帐户

我现在的问题是,如果我不将email设置为static,jUnit将在类中的每个测试之后驻留email变量。但如果我将其设置为静态并运行另一个测试(例如忘记密码),它仍然使用与以前相同的电子邮件


我的实际问题是,在jUnit测试中是否可以不重置全局变量(非静态)?

也许您应该在@Before方法中定义您的变量。因此,在每次测试中,首先将初始化变量

如果我理解正确,那么您希望实例变量的值在一个测试到下一个测试中继续存在。如果我没记错的话,JUnit会为每个测试方法运行创建一个新实例,所以您不能,您需要使用一个静态变量。另外,一般来说,您无法控制JUnit运行测试方法的顺序,因此它可能会很快使测试变得不稳定。一定要三思。:-)我使用
@FixMethodOrder(methodsorter.NAME\u升序)
将顺序保存在测试中。我想我解决了将静态变量设置为private的问题。这听起来是正确的方法(现在你坚持要在每个测试中保留值)。就像我写的,我只需要为整个类生成变量。我想我找到了解决办法,请参见第二条对我的问题的评论