Expectationsを利用してテストする
HelloWorldのテストを redifineMethods を利用して行ったが、JMockitのExpectations を使ってEasyMockと同じように記録/再生させる方式でもテストできる。
これを使うと Struts2 のアクションとかのテストも比較的簡単に出来そうな気がする。
package tutorial; import org.junit.After; import org.junit.Test; import mockit.*; public class HelloWorldTest3 { @Test public void testHello() { new Expectations(true) { DummyStream mock; { mock.println("Hello World"); } }; HelloWorld.main(null); } @After public void tearDown() { Mockit.tearDownMocks(); } }
new Expectations(true) のブロック中で、偽装するオブジェクトのメソッドを呼ばれる順番で記録し、テストコードでその通り呼ばれるかテストするという感じになる。
mock.println("Hello World") は mock.println( withEqual("Hello World") ) と同じ、 with〜 は色々なテスト方法が用意されている。