これは私の最初の試みであるEasyMockです。だから、私はvoid
方法を模擬しようとしてきた:ボイド法を模擬して
protected void onStop() {
logger.info("Stopping ReporterService.");
if (reporter != null) {
reporter.stop();
reporter = null;
}
}
私はオンラインいくつかのチュートリアルを踏襲し、私はこれを書いた:
ReporterService reporterService1 = EasyMock.createMock(ReporterService.class);
reporterService1.onStop();
EasyMock.expectLastCall().once();
replay(reporterService1);
//EasyMock.replay(reporterService1);
assertNull(Whitebox.getInternalState(reporterService1, "reporter"));
EasyMock.verify(reporterService1);
しかし、私はこれだ:
をjava.lang.AssertionError:
Expectation failure on verify:
ReporterService.onStop(): expected: 1, actual: 0
私はオンラインで検索しましたが、なぜそれが言われているのか分かりません。ヘルプをよろしくお願いいたします。
はまた、単に理解のために、私は手動でこれをテストし、それが動作しますが、私はちょうどEasymockを使用して、それをテストしたい:
ReporterService reporterService = new ReporterService();
Reporter reporter = new Reporter(null,null,null);
Whitebox.setInternalState(reporterService , "reporter", reporter);
assertNotNull(Whitebox.getInternalState(reporterService, "reporter"));
reporterService.onStop();
assertNull(Whitebox.getInternalState(reporterService, "reporter"));
実際にテストしようとしていることは不明です。あなたは記者が停止することをテストしていますか?もしそうなら、代わりに記者を嘲笑してください。 – chrylis
一見すると、テストコードはよく見えます。したがって、次に調べるべきことは、あなたの質問に欠けていることです:テスト中のコード。 Whitebox.getInternalState()...がその引数でonStopを呼び出す必要がある場合でも、そのコードをここに投稿してください(http://stackoverflow.com/help/mcveを参照)。それがなければ助けができません! – GhostCat