Java jUnit重置变量或保留静态变量
目前,我正在使用Groovy创建一些Selenium测试。我对每个部分都有一个单独的测试类,步骤是测试方法。在中,测试按顺序运行,以检查步骤是否正确。对于测试,我使用JUnit4.11 在我的测试(例如登录)中,我有一个全局变量电子邮件。此变量在测试为此测试(整个测试类)创建额外帐户后填充。我在每个测试类中都执行此过程,以获得一个运行良好的新帐户 我现在的问题是,如果我不将email设置为static,jUnit将在类中的每个测试之后驻留email变量。但如果我将其设置为静态并运行另一个测试(例如忘记密码),它仍然使用与以前相同的电子邮件Java jUnit重置变量或保留静态变量,java,unit-testing,groovy,junit4,Java,Unit Testing,Groovy,Junit4,目前,我正在使用Groovy创建一些Selenium测试。我对每个部分都有一个单独的测试类,步骤是测试方法。在中,测试按顺序运行,以检查步骤是否正确。对于测试,我使用JUnit4.11 在我的测试(例如登录)中,我有一个全局变量电子邮件。此变量在测试为此测试(整个测试类)创建额外帐户后填充。我在每个测试类中都执行此过程,以获得一个运行良好的新帐户 我现在的问题是,如果我不将email设置为static,jUnit将在类中的每个测试之后驻留email变量。但如果我将其设置为静态并运行另一个测试(例
我的实际问题是,在jUnit测试中是否可以不重置全局变量(非静态)?也许您应该在@Before方法中定义您的变量。因此,在每次测试中,首先将初始化变量 如果我理解正确,那么您希望实例变量的值在一个测试到下一个测试中继续存在。如果我没记错的话,JUnit会为每个测试方法运行创建一个新实例,所以您不能,您需要使用一个静态变量。另外,一般来说,您无法控制JUnit运行测试方法的顺序,因此它可能会很快使测试变得不稳定。一定要三思。:-)我使用
@FixMethodOrder(methodsorter.NAME\u升序)
将顺序保存在测试中。我想我解决了将静态变量设置为private的问题。这听起来是正确的方法(现在你坚持要在每个测试中保留值)。就像我写的,我只需要为整个类生成变量。我想我找到了解决办法,请参见第二条对我的问题的评论