0

エンドポイントでの統合テストに安心を使用しています。エンドポイントの 1 つが別のリソースに依存しています (別の API を条件付きで呼び出します)。その場合のテストを作成できるように、API 呼び出しをスタブ化する方法はありますか?

4

2 に答える 2

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 に答える
0

あなたのコードが http 経由で内部的に endpointB を呼び出すとしましょう。https://github.com/katta/fakerestまたはhttps://stubby4j.comを使用してその API をスタブできます。コードが内部的に別の API を呼び出すと、これらのスタブにヒットし、常にダミーの応答が返されます。お役に立てれば。

于 2013-09-20T03:42:41.010 に答える