0

JUnitの@Ruleアノテーションを使用し、同時にsTemporaryFolderを使用したい場合、4.11 では取得できますが、4.10 ではまだ機能するという問題があります。Mockunitils.easymockIlleagalStateExceptionJUnitJUnit

したがって、次のテストは JUnit 4.10 で実行されIllegalStateException、4.11 でスローされます。

import java.io.File;
import java.io.IOException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.unitils.UnitilsJUnit4;

public class MyTest extends UnitilsJUnit4 {

    @Rule
    public TemporaryFolder temporaryFolder = new TemporaryFolder();

    @Test
    public void testSomething() throws IOException {
        File newFile = temporaryFolder.newFile();
    }

}

extends UnitilsJUnit4JUnit 4.11 では機能しないのではなく、モッキング機能にアノテーションを使用しても、次のようになります。

@RunWith(UnitilsJUnit4TestClassRunner.class)
public class MyTest {
 ...
}

このコードをテストするときのエラー メッセージは次のとおりです。

java.lang.IllegalStateException: the temporary folder has not yet been created

追加でわかった新しいこと: JUnit 4.10 では、newFile()呼び出しで文字列を渡すときに同じエラーを強制することもできます。

        File newFile = temporaryFolder.newFile("");

私の質問:

JUnit 4.11 でTemporaryFoldersor@Ruleを一般的に s と連携させる適切な方法は何ですか?unitils.easymock.annotation.Mock

それとも、easymock@Mockアノテーションと@Rules を同時に使用したモッキングは単に不可能なのでしょうか?

バージョン:

easymock 3.4
unitils 3.4.3
4

0 に答える 0