2
下面的代碼是spock測試的一個非常基本的示例。當我運行它,它提供了以下錯誤無法在spock中的空對象上調用方法leftshift()
Cannot invoke method leftshift() on null object
爲什麼和如何才能讓我的代碼工作?
另外,在spock中使用leftshift
和rightshift
究竟是什麼。
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")
}
}