我正在使用Microsoft WebTest,並希望能夠執行類似於NUnit的Assert.Fail()
的操作。最好的我想出了throw new webTestException()
,但這在測試結果中顯示爲Error
而不是Failure
。我如何失敗WebTest?
除了反映在WebTest
上以設置私有成員變量來指示失敗之外,有沒有我錯過的東西?
編輯:我也使用了Assert.Fail()
方法,但是當從WebTest內部使用,並且Outcome
屬性是隻讀屬性(沒有公共setter)時,它仍然顯示爲錯誤而不是失敗。
編輯:好了,現在我真的難住了。我用反射來設置Outcome
屬性失敗,但測試仍然通過!
下面是設置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的框架並不真正使用它來確定測試通過/失敗結果。
本來應該更清晰......我有已經嘗試了這兩個。 (編輯問題反映此) – craigb 2008-10-22 14:08:22