技術開発日記

技術やら日々思ったことを綴ってます。

シンプルなモック

Javaのモックフレームワークだと、EasyMock、JMockit、Mockitoとかいろいろあるけど、
なんとなくJMockitが一番シンプルで使いやすい気がする。
上記の中ではあまり有名じゃないせいか、なんとなく情報が少ない気がする。
メモ程度にサンプルコード。

/**
 * テスト対象クラス
 **/
public class Sample {

    public void echo(String id) {
        Person person = new Person();
        System.out.print(person.getName(id));
    }
}

/**
 * モック対象クラス
 **/
public class Person {

    public String getName(String id) {
        return name;
    }
}

/**
 * テストクラス
 **/
public class SampleTest {
    
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        // Mockを生成
        Mockit.setUpMocks(MockPerson.class);
    }
    
    @Test
    public void test() {
        Sample sample = new Sample();
        assertEquals("モック文字列", sample.echo("123")); //OK
    }
   
    @MockClass(realClass = Person.class)
    public static class MockPerson {
        @Mock
        public void getName(String id) {
            return "モック文字列";
        }
    }
}