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