0

通常每个JUnit测试都应该被封装,但是我需要测试EncryptorTest存储的加密文件是否可以被DecryptorTest中的另一个Java VM实例解密。您可以通过运行 2 个不同的 JUnit 测试类(不是 JUnit 测试本身!)来管理它。唯一的问题是我必须保证 EncryptorTest 在 DecryptorTest 之前运行(因为第一个使用加密字符串保存文件)。我怎样才能做到这一点?我考虑过使用TestSuite:

@RunWith(Suite.class)
@SuiteClasses({EncryptorTest.class, DecryptorTest.class})
public class EncrypterDecrypterTestSuite
{
}

但是在服务器上,每个 JUnit 测试也会自行运行,因此 EncryptorTest 和 DecryptorTest 可能会混淆。我怎样才能防止这种情况?

4

3 回答 3

2

JUnit 不支持测试排序,您可能需要为此使用 TestNG(这里是相关文档)。

于 2012-01-27T18:35:53.577 回答
1

通常 JUnit 用于单元测试,因此测试用例之间不应该存在依赖关系。您可以使用@Before注释在解密之前设置加密,或者更好的是,从文件系统加载加密文件或以编程方式输入。

于 2012-01-27T18:46:44.797 回答
0

我现在以不同的方式解决了它。我省略了 EncrypterTest,只是自己加密了文件中的文本,让 DecrypterTest 一直读取这个文件。所以我不必关心在不同的虚拟机中运行它。

于 2012-01-30T07:42:10.043 回答