簡體   English   中英

使用 Mockito 對流暢的界面進行單元測試

[英]Unit testing a fluent interface with Mockito

我想模擬構建器模式中使用的 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);
    }
}

請改用 PowerMockito。 在那里你可以定義每當你調用 DAO 的構造函數時,返回我的模擬對象而不是返回實際的 DAO 對象。
請參閱以了解如何使用 PowerMockito。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM