我正在使用 Microsoft WebTest 并希望能够做类似于 NUnit 的Assert.Fail()
. 我想出的最好的方法是,throw new webTestException()
但这在测试结果中显示为 aError
而不是 a Failure
。
除了反映WebTest
设置私有成员变量来指示失败之外,还有什么我错过的吗?
编辑:我也使用了该Assert.Fail()
方法,但是当从 WebTest 中使用时,这仍然显示为错误而不是失败,并且该Outcome
属性是只读的(没有公共设置器)。
编辑:现在我真的很难过。我使用反射将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 框架并没有真正使用它来确定测试通过/失败结果。