は私がMoqを使用してクラス全体ではなくクラス上で1つのメソッドをモックしますか?
public interface IMyInterface
{
string MethodA();
void MethodB();
}
public class MyClass : IMyInterface
{
public string MethodA()
{
// Do something important
}
public void MethodB()
{
string value = MethodA();
// Do something important
}
}
は、私はユニットテストMethodBしたいクラスを持っているが、私はまだ部品番号を使用してMethodB
に呼び出している間、私はMethodA
をモックする方法について考えてトラブルを抱えています。 Moqはクラスではなくインターフェイスをモックしているので、mock.Object.MethodB()
と呼ぶことはできません。
これは可能ですか?もしそうなら、どうですか?
1つの発言:実際にはMoqを使用すると、クラスをモックすることができますが、クラスにはいくつかの要件があります。クラスは封印できません。モックされたメソッドは仮想としてマークされなければならない。また、静的メソッドではありません。 – Artiom