c# – 如何使用Fluent断言来测试不平等测试中的异常?

前端之家收集整理的这篇文章主要介绍了c# – 如何使用Fluent断言来测试不平等测试中的异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在C#中使用Fluent断言写一个大于overridden操作符的单元测试.如果任何一个对象为空,则此类中的大于运算符应该抛出异常.

通常当使用Fluent Assertions时,我将使用lambda表达式将该方法放入一个动作中.然后我将运行该操作并使用action.ShouldThrow< Exception>.然而,我不知道如何把一个操作符放入一个lambda表达式.

我宁可不使用NUnit的Assert.Throws(),Throws Constraint或[ExpectedException]属性来保持一致.

解决方法

你可以尝试这种方法.
[Test]
public void GreaterThan_NullAsRhs_ThrowsException()
{
    var lhs = new ClassWithOverriddenOperator();
    var rhs = (ClassWithOverriddenOperator) null;

    Action comparison = () => { var res = lhs > rhs; };

    comparison.ShouldThrow<Exception>();
}

它看起来不够整洁但它的作品.

或两行

Func<bool> compare = () => lhs > rhs;
Action act = () => compare();

猜你在找的C#相关文章