找不到Assert.Fail和Assert.Pass或同等学历(Cannot find Assert

2019-08-16 16:42发布

我以前在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()      

Answer 1:

该文档包括一个比较图表 ,包括这样的:

Fail - xUnit.net替代: Assert.True(false, "message")

(它不显示Assert.Pass ,我从来没有使用我自己,但我怀疑另一种方法是刚刚从测试回来。当然,如果你想扔在一个嵌套的方法调用没有帮助我的猜测是,它不是在NUnit的使用非常频繁,因此它不存在对比图。)



Answer 2:

一个替代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);
}


Answer 3:

只是抛出异常,以满足这两个要求(退出嵌套循环和将缺少Assert.Fail方法的替代方法)。 唯一的问题是没有像样的基本异常(如TestException),以便使用以避免收到有关使用基本异常类的警告,让更多的东西像定向一个InvalidOperationException可能是一个不错的选择。



文章来源: Cannot find Assert.Fail and Assert.Pass or equivalent