java version 1.7.0_75
Gradle 2.2
Groovy: 2.3.6
spock-core.1.0
您好,
我有一个java函数,我正在尝试使用spock框架进行单元测试。如果存在NullPointerException
。
public void disconnect() throws NullPointerException {
if(mClientConnection == null) {
throw new NullPointerException("mClientConnection has an invalid reference");
}
if(mClientConnection.isConnected()) {
mClientConnection.disconnect();
}
mClientConnection = null;
}
我正试图在我的spock单元测试中测试这个条件。下面我试图捕获是否抛出NullPointerException。但是,这是不正确的,因为我收到以下错误:
'expect' is not allowed here; instead, use one of: [and, then] @ thrown() != nullPointerException
这是我的单元测试spock测试:
def 'Disconnect from a connected client'() {
setup:
SmackClient smackClient = SmackClient.getSmackClient()
when: /* Disconnect from a existing connection */
smackClient.disconnect()
expect:
thrown() != nullPointerException
}
非常感谢任何建议,
答案 0 :(得分:4)
要遵循when
的正确字词为then
(如错误消息所示)。
也是thrown(NullPointerException)
。
参见文档:
异常条件用于描述when块应该抛出异常。它们使用thrown()方法定义,传递预期的异常类型。例如,要描述从空堆栈弹出应抛出EmptyStackException,您可以编写以下内容:
when: stack.pop() then: thrown(EmptyStackException) stack.empty