2

以下に示すように、ビルダー パターンで使用される DAO インターフェイスをモック化します。ただし、以下のテストを実行すると、モック オブジェクトが呼び出されないことが示されます。私は何を間違っていますか?

public class DBContent {
    ...

    public static class Builder {

        DAO dao = new DAO();
        ...

        public Builder callInsert() {
            ...
            long latest = dao.insert();
            ...
        }
    }
    ...
}

@RunWith(MockitoJUnitRunner.class)
public class DBContentTest {

    @Mock
    DAO dao;

    @Test
    public void test() {
        when(dao.insert()).thenReturn(1111L);
        DBContent db = DBContent.db()
                .callInsert()
                .callInsert()
                .callInsert()
                .build();
        verifyZeroInteractions(dao);
    }
}
4

1 に答える 1

1

代わりに PowerMockito を使用してください。そこでは、DAO のコンストラクターを呼び出すたびに、実際の DAO オブジェクトを返す代わりに、モック オブジェクトを返すように定義できます。PowerMockito の使用方法については、こちら
を 参照してください。

于 2015-06-14T07:33:36.757 に答える