簡體   English   中英

Mockito等同於這個Hamcrest“samePropertyValuesAs”/ jMock“with”成語?

[英]Mockito equivalent to this Hamcrest “samePropertyValuesAs”/jMock “with” idiom?

Hamcrest / jMock代碼如下所示:

@Test
public void setsSniperValuesInColumns() {
    context.checking(new Expectations() {{
        one(listener).tableChanged(with(aRowChangedEvent())); 
    }});
    model.sniperStatusChanged(new SniperState("item id", 555, 666), MainWindow.STATUS_BIDDING);
    ...
}

private Matcher<TableModelEvent> aRowChangedEvent() {
    return samePropertyValuesAs(new TableModelEvent(model, 0));
}

注意,這取自“以測試為導向的面向對象的軟件增長”(第157頁)。 本書的作者使用Hamcrest和jMock。 我認為AssertJ和Mockito可能更好。 當然,可以在同一個項目中同時使用這兩個測試框架,但這會讓人很困惑,看起來並不理想。

samePropertyValuesAs來自import static org.hamcrest.beans.SamePropertyValuesAs.samePropertyValuesAs;
with似乎來自JMock的

所以我想找到的方法是我可以使用Mockito的verify方法,他們使用Expectations 但有什么方法可以做到這一點:

verify( listener ).tableChanged( samePropertyValues( new TableModelEvent( model, 0 )));

...當然,人們可以想象一個解決方法,你可以一個接一個地設置所有的屬性......但我想Mockito有更好的開箱即用。

refEq匹配器看起來像你正在尋找的:

verify(listener).tableChanged(refEq(new TableModelEvent(model, 0)));

暫無
暫無

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

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