Easymockで問題が発生しています。ここではいくつかのvoid呼び出しを期待しています。しかし、私はモックが失敗するようにするには問題があります。EasyMock 3.5で複数のvoidメソッドを使用する場合
私はpersistConfiguration(Map)への呼び出しを期待しています。私は絶対に呼び出されていないと確信しています。しかし、テストはすべて同じことをパスします。
私の嘲笑インタフェースは次のようになります。
public abstract class MyMockedClass{
public abstract void start() throws Exception;
public abstract void stop() throws Exception;
public abstract void persistConfiguration(Map<String, Object> newConfiguration) throws Exception;
}
私は期待provider.start()
を削除し、マッチングgetLastCall
コールテストはメッセージ
@RunWith(EasyMockRunner.class)
public class MyFailingTest{
@Mock
private MyMockedClass provider;
....
@Before
public void setUp() throws Exception{
Map<String, Object> expectedSetConfig = new HashMap<>();
expectedSetConfig.put("String", setString);
expectedSetConfig.put("File", testFile2.getCanonicalPath());
/*Expect*/provider.start();
expectLastCall().atLeastOnce();
/*Expect*/provider.persistConfiguration(expectedSetConfig);
expectLastCall().times(1);
/*Expect*/provider.stop();
expectLastCall().atLeastOnce();
replay(provider);
}
}
のように見えます
予期しないメソッド呼び出しMyMockedClass.start(): MyMockedClass.persistConfiguration({列= NEWSTRING、ファイル= C:\ワークスペース\ MEH \もの}):期待:1、実際:0 MyMockedClass.stop():期待される:少なくとも1、実際:0
したがって、テストCANは失敗しますが、私の質問は:start
、stop
、またはpersistConfiguration
のいずれかのメソッドが呼び出された場合、テストを失敗させるにはどうすればよいですか? persistConfigurationメソッドは、それらの特定の値を含むマップ以外のもので呼び出された場合、失敗します。