I am unit testing some existing code and I have just started learning Spock.
I am trying to verify the SUT calls a Collaborator correctly, the method takes a Function
as an argument which is generated by SUT
.
What is the best way to check that the function is behaving as expected?
I've tried the below, which validates SUT calls its collaborator the correct number of times with a Function, which seems ok, but
def collab = Mock(Collab)
def sut = new SUT(collab)
def input = new Mock(Input)
def "..."() {
when:
sut.generatesAFunctionAndCallsCollab(input)
then:
1 * input.methodCalledInFunction() >> inputRetn
1 * collab.methodCall({ Function fun ->
assert fun.apply(input) == expectedResult
})
where:
inputRetn | expectedResult
true | false
false | true
}
Finally, how could I refactor the closure into one place to reuse across tests?
Aucun commentaire:
Enregistrer un commentaire