2016-03-21 24 views
1

Filter模擬オブジェクトがあり、テストメソッドに渡します。メソッドの変更Filterメタプロパティ値。しかし、私のテストでは、私は古い価値を得る。Java Mockitoプロパティの新しい値を設定する方法

org.junit.ComparisonFailure:期待:項目[28140f6f5a]しかした:項目[3abf441213] org.junit.Assert.assertEquals(Assert.java:115) における...

テストのための
@Test 
public void testMetaValue() throws Exception{ 
    when(f.getMetaData("last")).thenReturn("item3abf441213"); 

    WebUK at = new WebUK(); 
    at.setCollectingService(new TestCollectingServiceImpl()); 

    Set<Ad> ads = at.getNewAds(f); 
    assertEquals(1, ads.size()); 
    assertEquals("item28140f6f5a",f.getMetaData("last")); 
} 

オブジェクト:

public Set<Ad> getNewAds(Filter filter) throws Exception { 
     ... 
     filter.setMetaData("last", ul.get(0).attr("id")); 
     ... 
} 
+0

'thenReturn'ではなく' thenAnswer'を使用して、適切な値を返す前に何らかの状態をチェックすることができます。 – khelwood

+1

私は正しく動作していると思いますが、f.getMetadata( "last")のメソッドが偽装され、assertEqualsが "item3abf441213"を返し、 "item28140f6f5a"と比較すると、常に失敗します。違う? – cralfaro

+0

私の目標は、getNewAdsメソッドのフィルタMetaData( "last")を "item3abf441213"から "item28140f6f5a"に変更したかどうかをテストすることです。 –

答えて

1

あなたはsetメソッドを検証して呼び出されたことを確認することができます。

verify(f).setMetaData("last", "item28140f6f5a"); 
関連する問題