我以前在NUnit的使用这些,他们是真正有用的。 任何想法如何做这样的事情?
编辑,代码示例:
bool condition = false;//would be nice not to have this
observable.Subscribe(_ =>
{
if (real test)
condition= true;//Assert.Pass()
});
StartObservable();
Assert.True(condition);//Assert.Fail()
该文档包括一个比较图表 ,包括这样的:
Fail
- xUnit.net替代: Assert.True(false, "message")
(它不显示Assert.Pass
,我从来没有使用我自己,但我怀疑另一种方法是刚刚从测试回来。当然,如果你想扔在一个嵌套的方法调用没有帮助我的猜测是,它不是在NUnit的使用非常频繁,因此它不存在对比图。)
一个替代Assert.Fail("messsage")
所建议的xUnit文档
xUnit.net替代:Assert.True(假, “消息”)
有一个缺点 - 它的输出
message
Expected: True
Actual: False
为了摆脱
Expected: True Actual: False
不叫Assert.True(false, "message")
抛出Xunit.Sdk.XunitException
代替。
例如,创建一个类似的helper方法:
public static class MyAssert
{
public static void Fail(string message)
=> throw new Xunit.Sdk.XunitException(message);
}
只是抛出异常,以满足这两个要求(退出嵌套循环和将缺少Assert.Fail方法的替代方法)。 唯一的问题是没有像样的基本异常(如TestException),以便使用以避免收到有关使用基本异常类的警告,让更多的东西像定向一个InvalidOperationException可能是一个不错的选择。