这是我的Spock单元测试:
def "when favorite color is red then doSomething produces empty list of things"() {
given:
FizzBuzz fizzBuzz = Mock(FizzBuzz)
fizzBuzz.name >> 'Dark Helmet'
fizzBuzz.attributes >> [:]
fizzBuzz.attributes["favcolor"] >> 'red'
fizzBuzz.attributes["age"] >> '36'
Something something = new Something(fizzBuzz)
when:
Whoah whoah = something.doSomething()
then:
!whoah.things
}
以下是 FizzBuzz
的模拟代码:
public interface FizzBuzz extends Serializable {
Map<String, Object> getAttributes();
}
当我运行这个程序时,会得到以下结果:
java.lang.NullPointerException: Cannot invoke method rightShift() on null object
at com.commercehub.houston.SomethingSpec.when favorite color is red then doSomething produces empty list of things fail(SomethingSpec.groovy:18)
Process finished with exit code 255
第18行所指的“null对象”是指fizzBuzz
或其attributes
映射。 为什么呢?