我试图在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# – 如何使用Fluent断言来测试不平等测试中的异常?的更多相关文章

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

    我试图在C#中使用Fluent断言写一个大于overridden操作符的单元测试.如果任何一个对象为空,则此类中的大于运算符应该抛出异常.通常当使用FluentAssertions时,我将使用lambda表达式将该方法放入一个动作中.然后我将运行该操作并使用action.ShouldThrow.然而,我不知道如何把一个操作符放入一个lambda表达式.我宁可不使用NUnit的Assert.Throws(),ThrowsConstraint或[ExpectedException]属性来保持一致.解决方法你可

  2. Java lambda表达式和switch语句会导致eclipse崩溃正常吗?

    总结以上是DEVMAX为你收集整理的Javalambda表达式和switch语句会导致eclipse崩溃正常吗?如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  3. 如何使用java8 lambda表达式抛出自定义检查的异常?

    解决方法简短的回答是,你做不到.这是因为forEachOrdered接受了Consumer,并且未声明Consumer.accept会抛出任何异常.解决方法是做类似的事情但是,在这些情况下,我通常会在process方法中处理异常,或者使用for-loops以旧式方式处理异常.

  4. Java Lambda表达式可避免多次迭代

    伙计们,考虑以下示例,给定一个Trade对象列表,我的代码需要返回一个包含交易量24小时,7天,30天和所有时间的数组.使用普通的旧迭代器,这只需要对集合进行一次迭代.我正在尝试使用Java8流和Lambda表达式来做同样的事情.我想出了这个代码,它看起来很优雅,工作正常,但需要在列表上进行4次迭代:如何在列表中仅使用一次迭代来实现相同的目标?

  5. c# – “不包含”动态lambda表达式

    下面的代码执行“包含”表达式:我对表达式不是很熟悉,我不知道如何将否定放入表达式函数中,并且在“Expression”类中找不到任何合适的方法.有没有类似的方法动态创建“不包含”表达式?

  6. c# – 如何检查我的lambda表达式是否为null?

    但我仍然得到同样的错误.解决这个问题的正确方法是什么?解决方法首先,您可以从满足条件的对象中选择十进制值.然后在.Sum()方法之前使用.DefaultIfEmpty()方法:如果序列为空,则DefaultIfEmpty()函数会插入具有默认值的单个元素.而且我们知道,十进制类型的defualt值是0.0M.另外:你没告诉我们Linq什么?你正在用吗.但是,如果您使用LinqToEntity,则必须将代码更改为:

  7. c# – 将lambda表达式转换为派生类型

    我需要一点魔法.我相信我想做的事情是有道理的,但如果我没有看到计划的问题,原因就会受到欢迎.我有一个表达表达式我想要转换/转换甚至创建一个全新的表达式:表达式这被用作EF过滤器查询,作为参数传递给存储库方法.存储库返回一个可枚举的实体,所以我可以很容易地使用协方差,但是我想在返回它之前对它的派生状态进行一些后处理.在我看

  8. c# – 记录lambda表达式

    在When方法中,我想记录一个谓词或Func返回false.但是,只记录“未满足的条件”并没有给我太多信息.如果我这样调用方法:有没有办法将该表达式转换为可读/有意义的字符串以进行日志记录?解决方法在普通的lambda中没有太多有用的元数据.您可以使用表达式树:然后在呼叫站点:输出将是:Conditionnotmet:x=>False但是,表达式树引入了更多的开销,而条件.Compile也不便宜.所以我一般不推荐这种方法,但它会输出你想要的有用信息.

  9. c# – 我可以在lambda表达式中调用函数吗?

    我想做以下但我认为这不会起作用:一个.这有用吗?湾如果没有,我是否需要查询故事,然后按分数对它们进行排序?请注意,如果score不适用于任何实例,则可能值得将其设置为静态.另一种选择是使score()方法成为Story或扩展方法的实例方法.请注意,这仅适用于LINQ到对象;如果您正在使用LINQ-to-sql/LINQ-to-Entities等,您需要使用lambda来完成整个事务,或者使用UDF映射函数context)来计算价值.使用原始语法的示例:添加一个,您可以使用:

  10. c# – 从PropertyInfo创建表达式

    我正在使用一个需要Expression的API,并使用它来创建不同对象之间的映射:如何从PropertyInfo创建必要的表达式?

随机推荐

  1. c# – (wpf)Application.Current.Resources vs FindResource

    所以,我正在使用C#中的WPF创建一个GUI.它看起来像这样:它现在还没有完成.这两行是我尝试制作一种数据表,它们在XAML中是硬编码的.现在,我正在C#中实现添加新的水果按钮功能.我在XAML中有以下样式来控制行的背景图像应该是什么样子:因此,在代码中,我为每列col0,col1和col2创建一个图像,如果我使用以下代码,它添加了一个如下所示的新行:如你所见,它不太正确……为什么一个似乎忽略了一些属性而另一个没有?

  2. c# – 绑定DataGridTemplateColumn

    似乎我已经打了个墙,试图在DataGrid上使用DataTemplates.我想要做的是使用一个模板来显示每个单元格的两行文本.但是似乎无法以任何方式绑定列.以下代码希望显示我想做的事情.注意每个列的绑定:模板列没有这样的东西,因此,这个xaml不可能工作.我注定要将整个DataTemplate复制到每个列,只是对每个副本都有不同的约束?解决方法我不完全确定你想要做什么,但如果您需要获取整行的DataContext,可以使用RelativeSource绑定来移动视觉树.像这样:

  3. c# – 学习设计模式的资源

    最近我来到了这个设计模式的概念,并对此感到非常热情.你能建议一些帮助我深入设计模式的资源吗?

  4. c# – 是否有支持嵌入HTML页面的跨操作系统GUI框架?

    我想开发一个桌面应用程序来使用跨系统,是否有一个GUI框架,允许我为所有3个平台编写一次代码,并具有完全可脚本化的嵌入式Web组件?我需要它有一个API来在应用程序和网页之间进行交流.我知道C#,JavaScript和一些python.解决方法Qt有这样的事情QWebView.

  5. c# – 通过字符串在对象图中查找属性

    我试图使用任意字符串访问嵌套类结构的各个部分.给出以下(设计的)类:我想要从Person对象的一个实例的“PersonsAddress.HousePhone.Number”获取对象.目前我正在使用反思来做一些简单的递归查找,但是我希望有一些忍者有更好的想法.作为参考,这里是我开发的(crappy)方法:解决方法您可以简单地使用标准的.NETDataBinder.EvalMethod,像这样:

  6. c# – 文件下载后更新页面

    FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=en&pf=true它呈现该页面,然后使用以下元刷新标签来实际向用户提供要下载的文件:你可能需要在你的应用程序中做类似的事情.但是,如果您真的有兴趣在文件完全下载后执行某些操作,那么您的运气不佳,因为没有任何事件可以与浏览器进行通信.执行此操作的唯一方法是上传附件时使用的AJAXupload.

  7. c# – 如何在每个机器应用程序中实现单个实例?

    我必须限制我的.net4WPF应用程序,以便每台机器只能运行一次.请注意,我说每个机器,而不是每个会话.我使用一个简单的互斥体实现单实例应用程序,直到现在,但不幸的是,这样一个互斥是每个会话.有没有办法创建机器互连,还是有其他解决方案来实现每个机器应用程序的单个实例?

  8. c# – WCF和多个主机头

    我的雇主网站有多个主机名,都是同一个服务器,我们只是显示不同的皮肤来进行品牌宣传.不幸的是,在这种情况下,WCF似乎不能很好地工作.我试过overridingthedefaulthostwithacustomhostfactory.这不是一个可以接受的解决方案,因为它需要从所有主机工作,而不仅仅是1.我也看过thisblogpost,但是我无法让它工作,或者不是为了解决我的问题.我得到的错误是“这

  9. c# – ASP.NET MVC模型绑定与表单元素名称中的虚线

    我一直在搜索互联网,试图找到一种方式来容纳我的表单元素的破折号到ASP.NET的控制器在MVC2,3或甚至4中的默认模型绑定行为.作为一名前端开发人员,我更喜欢在我的CSS中使用camelCase或下划线进行破折号.在我的标记中,我想要做的是这样的:在控制器中,我会传入一个C#对象,看起来像这样:有没有办法通过一些正则表达式或其他行为来扩展Controller类来适应这种情况?我讨厌这样的事实,我必须这样做:甚至这个:思考?

  10. c# – 用户界面设计工具

    我正在寻找一个用户界面设计工具来显示文档中可能的GUI.我不能生成代码.我知道MicrosoftVisio提供了一个功能.但有什么办法吗?您使用哪种软件可视化GUI?

返回
顶部