ユニットテストメソッドを記述しているメソッドでサービスコールをMOQしたい。例えば抽象クラスのオブジェクトを返すメソッドでサービスコールをmoqする方法はありますか?
:
public void MethodUnderTest(data)
{
XYZService.ServiceMethod(data);
}
上記サービス方法は、抽象クラスのオブジェクトを返す(A級と言うことができます)。すなわち
今public ClassA ServiceMethod(ClassA data)
{
//code
}
public abstract class ClassA
{
//Code
}
、私のように私のテストクラスで上記のテストのためのMOQ書く場合:私はの代わりに新にClassA()を書く場合
_xyzService.setup(x => x.ServiceMethod(data)).Returns(?);
?、私はクラスが抽象であるので、それをするはずがありません!
だから、私はリターンに何を置くべき?
「ClassA」から派生したものを返すと正しいアプローチになります。ダミーの 'public class ClassAB:ClassA'を作成してください。 – Fabio
@Fabioモッキングフレームワークの目的は、それらのすべての派生物を自分で作成するのではなく、フレームワークを使ってそれらのタイプのインスタンスを作成することです。 – HimBromBeere
@HimBromBeere、私のコメントのポイントは、OPがClassAから派生したクラスだけを返すということでした。テストの観点からは、このインスタンスを作成する方法はありません。申し訳ありませんが、私はフレームワークを嘲笑することの重要性を弁別しようとしませんでした。 – Fabio