我正在使用 rest-assured 对我的端点进行集成测试。其中一个端点依赖于另一个资源(它有条件地调用另一个 API)。有没有办法让我停止 API 调用,以便我可以为这种情况编写测试?
问问题
1647 次
2 回答
0
假设您的代码通过 http 在内部调用端点 B,您可以使用https://github.com/katta/fakerest或https://stubby4j.com存根该 api。因此,当您的代码在内部调用另一个 api 时,它会碰到这些存根,这将始终返回一个虚拟响应。希望这可以帮助。
于 2013-09-20T03:42:41.010 回答
0
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
}
}
于 2013-09-20T17:14:58.540 回答