我想測試具有特定值的公共變量。問題是我正在測試公共變量,而不是JavaBean。JUnit的Hamcrest庫有一個API來測試公共變量而不是屬性
Assert.assertThat(clientMapper.entries, Matchers.<ClientMapper.MapperEntry>hasItem(
Matchers.allOf(
Matchers.hasProperty("from", Matchers.is("/v1")),
Matchers.hasProperty("to", Matchers.is("/v2"))
)
));
而且我測試的類是因爲它沒有找到一個JavaBean屬性from
和to
,這是可以理解
public static class MapperEntry {
public String from;
public String to;
}
測試失敗,但我如何測試公共領域?
更新:我試圖找到適用於Java 7
我們是在談論Java的8嗎?在這種情況下,對於流來說很容易......類似於...... assertThat(clientMapper.entries()。filter(p - >「/v1".equals(p.from)&&」/v2".equals (p.to))。size,greaterThan(0));' –
否,不幸的是java7 –
MapperEntry.equals方法是否覆蓋返回true,如果from/to是相等的?在這種情況下,具有適當的MapperEntry作爲參數的'hasItem'就足夠了... –