如何正确单元测试房产变更?

Rog*_*ger 3 java junit unit-testing hamcrest

我有这个测试:

@Test
public void UpdateAllFooDatesToOneDayBeforeProvidedDate_TodaysDateAndFooDate_UpdatedDates() {
    // arrange
    List<Foo> foos = new ArrayList<Foo>();
    Date barDate = today;
    Foo foo1 = setupFoo();
    Foo foo2 = setupFoo();
    foos.add(foo1);
    foos.add(foo2);
    foo1.setValidTo(dateUtil.adjustDaysOfDate(today, 5));
    foo2.setValidTo(dateUtil.adjustDaysOfDate(today, 8));

    // act
    modifyDates.updateAllFooDatesToOneDayBeforeProvidedDate(barDate, foos);

    // assert
    assertThat(foos, hasItems(...?)); //I don't know how to assert this
}
Run Code Online (Sandbox Code Playgroud)

updateAllFooDatesToOneDayBeforeProvidedDate(Date,List)只是将所有Foos的日期属性更改为barDate之前的日期.

我正在尝试使用Hamcrest来帮助我断言列表已经更新,但我无法让它真正起作用.

我应该简单地使用foos.get(n).getDate()并断言那些?

断言foos中元素的date属性是否已正确更新的首选方法是什么?

编辑:错字

And*_*rup 6

你不是在这里努力吗?为什么不迭代集合并为每个元素断言?

for ( Foo foo : foos ) { assertThat( foo.getDate() , equalTo( barDate ) ); }
Run Code Online (Sandbox Code Playgroud)

干杯,