java - Simple Mockito verify works in JUnit but not Spock -
using basic example mockito's examples page, able run in junit.
however, when run same test in spock, fails.
junit/java version (this passes):
import org.junit.test; import java.util.list; import static org.mockito.mockito.mock; import static org.mockito.mockito.verify; public class simplejunittest { @test public void basicmocktest() { list mockedlist = mock(list.class); //using mock object mockedlist.add("one"); mockedlist.clear(); //verification verify(mockedlist).add("one"); verify(mockedlist).clear(); } }
spock/groovy version (this fails):
import static org.mockito.mockito.mock import static org.mockito.mockito.verify class simplespocktest extends spock.lang.specification { def "basic mock test"() { given: //mock creation list mockedlist = mock(list.class); when: //using mock object mockedlist.add("one"); mockedlist.clear(); then: //verification verify(mockedlist).add("one"); verify(mockedlist).clear(); } }
here error when spock test fails:
condition not satisfied: verify(mockedlist).add("one") | | | | | false | $java.util.list$$enhancerbymockitowithcglib$$172e393a@613043d2 (renderer threw nullpointerexception) $java.util.list$$enhancerbymockitowithcglib$$172e393a@613043d2 (renderer threw nullpointerexception) @ simplespocktest.basic mock test(simplespocktest.groovy:25)
any ideas or suggestions? spock , mockito , hoping them working together. thank much!
roughly speaking, then-block may contain assertions in form of boolean expressions. mockito verification expression doesn't fit contract, return falsy value (null
, false
, 0
) when passes, interpreted failed assertion spock.
to solve problem, can either write helper method wraps around verification expressions , returns true
, or can use spock's built-in mocking framework instead of mockito.
Comments
Post a Comment