0
在我的单元测试中,我有2个Mock对象,我们称它们为Book book
和Shelf shelf
。我想确保repair()
的方法,如果book
是由我正在测试的那段代码首先调用的,那么它将通过putBack(Book)
方法Shelf
类放回shelf
。如何在Spock中的模拟对象中以正确的顺序调用方法?
下面是一个简单说明:
def "Organize damaged books"() {
given:
Book book = Mock(Book)
Shelf shelf = Mock(Shelf)
when:
library.returnDamaged(book)
then:
1 * book.repair()
1 * shelf.putBack(book)
}
上面的测试将通过即使在returnDamaged
方法,我称之为shelf.putBack()
第一book.repair()
之前。我试过了:
1 * shelf.putBack(book) >> {
1 * book.repair()
}
但是无论哪个先到,测试仍然通过。
你肯定'shelf.putBack()'抛出一个异常当书没有被修复? –
有没有需要架子做到这一点。 –