0

通常、すべてのJUnitテストはカプセル化する必要がありますが、EncryptorTestによって保存された暗号化ファイルがDecryptorTestの別のJavaVMインスタンスによって復号化できるかどうかをテストする必要があります。これは、2つの異なるJUnitテストクラス(JUnitテスト自体ではありません!)を実行することで管理できます。唯一の問題は、DecryptorTestの前にEncryptorTestが実行されることを保証する必要があることです(最初の問題は暗号化された文字列でファイルを保存するため)。どうやってやるの?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にこのファイルを常に読み取らせます。したがって、別のVMで実行する必要はありません。

于 2012-01-30T07:42:10.043 に答える