我正在阅读“Growing Object-Oriented Software Guided by Tests”一书。
但我使用 AssertJ 和 Mockito 而不是 Hamcrest 和 jMock。
我以前需要检查与JTable
.
// verify that one or more events in row 0 happen
verify(listener, atLeastOnce() ).tableChanged(refEq(new TableModelEvent(model, 0)));
(请注意refEq
,几天前 Mureinik在这里向我介绍了这一点)。
现在我需要检查类型TableModelEvent
的第 0 行是否恰好出现了一个TableModelEvent.UPDATE
。本书有:
one( listener ).tableChanged( with( aChangeInRow( 0 )));
...aChangeInRow
似乎来自 jMock。
NBTableModelEvent
有一个有用的方法getType()
。这是我想写的:
// verify that precisely one ***change*** event happens in row 0
// *** CAVEAT: ERRONEOUS CODE ***
verify( listener ).tableChanged(refEq(new TableModelEvent(model, 0))).getType().isEqualTo( TableModelEvent.UPDATE );
但这甚至不能编译......我应该写什么?
更一般地说,是否有一种 AssertJ/Mockito 技术用于提取作为参数(此处为 a TableModelEvent
)传递给已验证方法的值,以便对其进行任何您想要的测试?