【发布时间】:2020-03-03 21:28:35
【问题描述】:
我已经为一些 Java 类编写了 Spock 测试。当我尝试验证参数中使用的确切对象时,测试失败。
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.所有事件都发布到 订阅者(EventPublisherTest.groovy:28)
http://spockframework.org/spock/docs/1.3/all_in_one.html#_argument_constraints 似乎暗示我可以传入一个值。第一个示例是字符串,但我认为类型无关紧要。
我做错了什么?
斯波克:1.3 时髦:2.5 groovy-test-junit5-2.5.7 JDK:11
【问题讨论】: