私は Microsoft WebTest を使用しており、NUnit のAssert.Fail(). 私が思いついた最善の方法throw new webTestException()は、テスト結果でErrorはFailure.
失敗を示すためにプライベートメンバー変数を設定することを反映する以外に、WebTest私が見逃しているものはありますか?
編集: メソッドも使用しましたAssert.Fail()が、WebTest 内から使用すると失敗ではなくエラーとして表示され、Outcomeプロパティは読み取り専用です (パブリック セッターはありません)。
編集:さて、私は本当に困惑しています。リフレクションを使用してOutcomeプロパティを Failed に設定しましたが、テストは引き続き成功します。
Oucome を失敗に設定するコードは次のとおりです。
public static class WebTestExtensions
{
public static void Fail(this WebTest test)
{
var method = test.GetType().GetMethod("set_Outcome", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(test, new object[] {Outcome.Fail});
}
}
そして、これが私が失敗しようとしているコードです:
public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
this.Fail();
yield return new WebTestRequest("http://google.com");
}
Outcomeに設定されてOucome.Failいますが、どうやら WebTest フレームワークは実際にはこれを使用してテストの合格/不合格の結果を判断していません。