私は単純なテストケースを実行しようとしています。私は次の方法を持っています。Powermock(Easymock付き)モックでの最後の呼び出しはありません
public static void run(String[] args) throws Throwable {
CommandLineArguments opts = CommandLineOptionProcessor.getOpts(args);
}
私はこのメソッド/テストケースを作成し続けます。しかし、私はちょうど簡単なテストケースが最初に働くことを確認したかったのです。そこで私は次のテストを書いた。
@Test
public void testRun() {
String[] args = {"--arg1", "value", "--arg2", "value2"};
mockStatic(CommandLineOptionProcessor.class);
expect(CommandLineOptionProcessor.getOpts(args));
EasyMock.replay(CommandLineOptionProcessor.class);
}
その後、私は次のエラーを取得する:
java.lang.IllegalStateException: no last call on a mock available
私はStackOverflowの上の他の記事をいくつか読んでますが、その解決策は、彼らがMockitoとPowerMockを使用していたということのようでした。私はPowermockとEasymockを使用しているので、問題ではありません。
私はレネの助言に従い、私のクラスのトップに以下を追加しました。
@PrepareForTest(CommandLineOptionProcessor.class)
@RunWith(PowerMockRunner.class)
public class DataAssemblerTest {
以前のエラーが修正されました。しかし、今私はこのエラーがあります。
java.lang.IllegalArgumentException: Not a mock: java.lang.Class
at org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:61)
at org.easymock.EasyMock.getControl(EasyMock.java:2172)
at org.easymock.EasyMock.replay(EasyMock.java:2074)
.
.
.
これを引き起こす可能性のあるアイデアは素晴らしいものです。
あなたはMavenを使用していますか? –
いいえ、私は現在Mavenを使用していません。 –
@RenéLinkJavaAssistでこの問題を修正しました。私はちょうどプロジェクトに図書館を持っていなかったことが分かります。だから今は大丈夫です。しかし、私は今、この偽の問題を抱えています。 –