下面的代码是spock测试的一个非常基本的例子.当我运行它时,它会出现以下错误
为什么,我如何使我的代码工作?
另外,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")
}
}
解决方法:
这是Publisher类中的一个错误,它不会初始化其订阅者字段(因此是NPE). list<< elem是list.add(elem)的Groovy快捷方式.要了解有关使用Spock进行模拟的更多信息,请访问http://docs.spockframework.org.
PS:请不要在这里和http://forum.spockframework.org双重发帖(要么是好的).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。