我是spock框架测试的新手,我没有找到任何可以找到所需信息的例子.因此,我认为最好的方法是展示一个我需要的例子.
例如spock中的测试类:
def "getData" (){ // this is test of getData method from ExternalService
when:
Result result = externalService.getData()
then:
result.msg = 'SUCCESS'
}
Run Code Online (Sandbox Code Playgroud)服务类别:
public class ExternalService(){
private ServiceConnector serviceConnector;
public Result getData(){
Result result = serviceConnector.callAndGet();
prepareInformation(data);
updateStatuses(data);
return result;
}
}
Run Code Online (Sandbox Code Playgroud)类数据作为域类:
public class Data {
private String msg
private int Id
// +getters/setters
}
Run Code Online (Sandbox Code Playgroud)现在我有getData测试,并想嘲笑唯一的方法callAndGet().这意味着每次调用时callAndGet我都需要使用带有msg SUCCESS的对象数据,但是getData应该正常调用方法中的所有其他方法.
这是可以理解的吗?问题是我们如何将服务类注入/模拟ExternalService到spock测试类中?