【发布时间】:2025-12-07 20:25:01
【问题描述】:
以下代码是 spock 测试的基本示例。当我运行它时,它会给出以下错误
Cannot invoke method leftshift() on null object
为什么会这样?如何让我的代码正常工作?
另外,leftshift 和 rightshift 在 spock 中的具体用途是什么。
import spock.lang.*;
class Publisher {
List <Subscriber> subscribers
void send (String message){}
}
interface Subscriber {
void receive(String message)
}
public class Test1 extends Specification {
Publisher publisher = new Publisher()
def subscriber = Mock(Subscriber)
def subscriber2 = Mock(Subscriber)
def setup() {
(publisher.subscribers) << subscriber
(publisher.subscribers) << subscriber2
}
def "should send message to subscriber"() {
when:
publisher.send("hello")
then:
1 * subscriber.receive("hello")
1 * subscriber2.receive("hello")
}
}
【问题讨论】:
标签: java unit-testing groovy spock