AutoFixtureを使用してAbstractクラスの単体テストを作成しています。これは、私がやろうとしていることを表しています。
public abstract class Base
{
public virtual void DoSomethingCool()
{
OnDoingSomethingCool();
}
protected abstract void OnDoingSomethingCool();
}
私の単体テストは次のようになります。
[TestMethod]
public void TestMethod1()
{
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var sut = fixture.Create<Base>();
// How to assert that the OnDoingSomethingCool method was called
sut.Invoking(x => x.DoSomethingCool())
.ShouldNotThrow();
}
では、保護された抽象メソッドが実際にメソッドで呼び出されたことをどのように主張しますDoSomethingCool
か?
注入された依存性からのオブジェクトである場合、を使用してモックをセットアップし、メソッドが呼び出されたことを表明できますが、メソッドはテスト対象のサブジェクト内Moq
の抽象メソッドであるため、メソッドが呼び出されたことをどのようにアサートしますか?