「Dependency Injection for .NET」を読んでいて、本のサンプルのいくつかに従っていると、単体テストに関する質問につながります。
単体テストは、いつまたはいつを行うかをどのように認識しますpass
かfail
?
理由はわかりませんが、何かをアサートする必要があり、Assert がtrue
である場合、単体テストに合格すると、それ以外の場合はテストに失敗すると常に想定していました。
しかし、そうではないようです。以下のサンプルを見てください (NUnit
とを使用Moq
)。
[Test]
public void Test_UserProvidedMessage()
{
Mock<IMessageWriter> m = new Mock<IMessageWriter>();
Salutation s = new Salutation(m.Object);
s.Exclaim("use this message silly");
m.Verify(w => w.Write("use this message silly"));
}
単体テストの出力は、Mock.Verify
メソッドによって制御されます。この例ではそれを理解していますが、単体テストの合格または不合格について私が知っていることを疑問視しています。
単体テストは、いつまたはいつを行うかをどのように認識しますpass
かfail
? 出力がまたはであるかどうか
を判断するために、ユニット テスト フレームワークはどの基準を使用しますか pass
fail