我已经为Spock测试编写了一些Java类。当我尝试验证参数中使用的确切对象时,测试失败。
def "all events are published to subscribers"() {
given:
EventSubscriber subscriber = Mock()
when:
subscriber.shouldRegister() >> true
subscriber.interests() >> new HashSet<Intent>(Arrays.asList(COUNTER, GAUGE))
publisher.subscribe(subscriber)
def event = publisher.newEvent("test", COUNTER)
event.start()
def child = event.newChild("child", GAUGE)
event.finish()
then:
// 2 * subscriber.onCreate(event)
// 1 * subscriber.onStart(event, event.start)
// 1 * subscriber.onEnd(event, event.end)
// 1 * subscriber.onChild(event, child)
2 * subscriber.onCreate(_)
1 * subscriber.onStart(_, _)
1 * subscriber.onEnd(_, _)
1 * subscriber.onChild(_, _)
}
注释掉的行失败与>
groovy.lang.MissingPropertyException:没有这样的属性:事件类别:io.hypi.faf.api.EventPublisherTest
在io.hypi.faf.api.EventPublisherTest.all事件发布到订阅者数(EventPublisherTest.groovy:28)
[http://spockframework.org/spock/docs/1.3/all_in_one.html#_argument_constraints似乎建议我可以传入一个值。第一个示例是字符串,但我认为类型无关紧要。
我在这方面做错了什么?
Spock:1.3Groovy:2.5groovy-test-junit5-2.5.7JDK:11
我已经为Spock测试编写了一些Java类。当我尝试验证参数中使用的确切对象时,测试失败。 def“所有事件都发布给订阅者”(){...
在交互测试中使用的对象实例应在given
部分中定义。