[英]Mock / stub with integration testing in Java
我正在使用可放心的端点上的集成测试。 端点之一对另一资源具有依赖性(它有条件地调用另一个API)。 有没有一种方法可以对API调用进行存根处理,以便为该情况编写测试?
假设您的代码通过http内部调用了endpointB,则可以使用https://github.com/katta/fakerest或https://github.com/azagniotov/stubby4j对api进行存根处理,因此当您的代码在内部进行调用时另一个API,它将点击这些存根,并将始终返回虚拟响应。 希望这可以帮助。
interface IDataProvider {
string RetrieveData();
}
class StandardDataProvider : IDataProvider {
public string RetrieveData(){
// call to API
}
}
class Program {
private IDataProvider _dataProvider;
public Program(IDataProvider provider = null) {
_dataProvider = provider ?? new StandardProvider();
}
public void MethodToTest(){
var data = _dataProvider.RetrieveData();
// do your thing
}
}
在测试中,您可以通过创建自己的IDataProvider
对象并使用其数据来模拟数据。
class TestDataProvider : IDataProvider {
public string RetrieveData(){
return "my own data";
}
}
class Test {
[TestMethod]
public void TestProgram(){
var obj = new Program(new TestDataProvider);
var result = obj.MethodToTest();
// asserts
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.