jjzjj

fluent-assertions

全部标签

c# - 单元测试是否使 Debug.Assert() 变得不必要?

我准备好麦康奈尔的“CodeComplete”已经有一段时间了。现在我在Hunt&Thomas的“ThePragmaticProgrammer”中再次阅读它:使用断言!注意:不是单元测试断言,我的意思是Debug.Assert()。遵循SO问题WhenshouldIuseDebug.Assert()?和Whentouseassertionoverexceptionsindomainclasses断言对开发很有用,因为可以很快找到“不可能”的情况。而且它们似乎很常用。据我了解,断言在C#中通常用于检查输入变量的“不可能”值。为了使单元测试尽可能简洁和独立,我使用null和“不可能的”虚拟

c# - C# 可以提供 static_assert 吗?

我正在寻找一种在C#编程语言中进行编译时断言的方法,例如C++的BOOST库或新的C++0x标准提供的断言。我的问题是双重的;这可以在标准的、可移植的C#中实现吗?或者,是否可以通过对给定C#编译器的怪癖进行不可移植的假设来实现该行为?在谷歌上快速搜索发现以下链接指向一个technique,我不确定其标准合规性和兼容性。 最佳答案 该方法与其他没有内置静态断言的语言(Delphi、较旧的C++等)相同:找到一种机制将要断言的条件转换为编译器不满意的条件,如果条件是假的。对于C#,最容易利用的机制之一是关于将负文字/常量分配给无符号类

c# - 如何在 Fluent NHibernate 中映射 IDictionary<string, Entity>

我有一个带有IDictionary的类。如您所见,它使用多对多从其表中获取CodedExamples,使用tOwnedCodedExample表查找哪些属于OwnerClass。我意识到这是一个非常基本的(希望是标准的)映射,但我正在苦苦挣扎,找不到任何文档,因此非常感谢任何可能的帮助。非常感谢斯图 最佳答案 我有一个工作示例,这应该让您清楚。类:publicclassCustomer:Entity{publicIDictionaryFavouriteBooks{get;set;}}publicclassBook:Entity{pu

c# - 'Debug.Assert' 语句在 Mono 中不起作用

我这里有这个程序:namespaceTodoPlus{usingSystem.Diagnostics;publicclassLameProg{publicLameProg(){}publicstaticvoidMain(string[]args){inta=2;intb=3;Debug.Assert(a==b,"Bleh");System.Console.WriteLine("Haha,itdidn'twork");}}}不知何故,Debug.Assert不工作。我正在使用Mono2.10.5,这是我用来编译和执行的:dmcsLameProg.csmono./LameProg.exe我

c# - 为什么当我比较两个空列表时测试 'Assert.AreEqual' 失败了?

我有一个类MyCustomClass:publicMyCustomClass{publicMyCustomClass(){MyObject=newList();}publicListMyObject{get;set;}}在测试中:Listaux=newList();MyCustomClassoClass=newMyCustomClass();Assert.AreEqual(aux,oClass.MyObject)测试失败,为什么?每个属性、静态成员等都是相同的。 最佳答案 在这种情况下,Assert.AreEqual将检查两个对象是

c# - 使用 Mocks 验证依赖调用时的 TDD Arrange Act Assert 模式

我正在使用Moq来测试一些void方法的行为。使用MockBehaviour.Strict必须在Arrange步骤期间指定对模拟的每次调用。这导致许多测试没有任何Assert(或Verify)步骤。通过条件只是测试运行没有抛出异常。我错过了什么吗?Arrange,Act,Assert模式在使用严格模拟时是否不合适?是否有更语义化的方式来安排这些测试?一个简单的虚构例子......[TestClass]publicvoidDeleteUser_ShouldCallDeleteOnRepository(){//ArrangevaruserRepository=newMock(MockBeh

c# - 从现有数据库和 Fluent NHibernate 自动映射生成 C# 实体

我正在使用一个现有的数据库,该数据库使用了一些非常丑陋的约定。我想使用NHibernate,并且我认为我可以使用FluentNHibernate的自动映射约定来修复所有这些丑陋的数据库约定。我想避免手动编写所有实体类。(这就是LINQtoSQL和SubSonic的吸引力所在)是否可以根据我在FluentNHibernate中指定的数据库模式和映射生成我的C#实体?旁白:您知道NHibernate的设计器吗? 最佳答案 我想,这就是您想要的:NHibernate映射生成器。http://nmg.codeplex.com/

c# - Fluent nHibernate 自动映射属性为 nvarchar(max)

使用流畅的nhibernate和自动映射(nhibernate创建我的数据库模式),我如何让nhibernate根据以下类在数据库中创建nvarchar(max)列publicclassVirtualPage:BaseEntity{publicvirtualintParentId{get;set;}publicvirtualstringPageName{get;set;}publicvirtualstringTitle{get;set;}publicvirtualstringBody{get;set;}publicvirtualstringViewName{get;set;}publi

c# - Xunit.Assert.Collection 中的问题 - C#

我有一个类库,它包含以下模型和方法型号:publicclassEmployee{publicintEmpId{get;set;}publicstringName{get;set;}}方法:publicclassEmployeeService{publicListGetEmployee(){returnnewList(){newEmployee(){EmpId=1,Name="John"},newEmployee(){EmpId=2,Name="AlbertJohn"},newEmployee(){EmpId=3,Name="Emma"},}.Where(m=>m.Name.Contai

c# - 如何写入 "fluent"日期时间值?

如何编写允许编译以下代码的C#代码:vardate=8.September(2013);//GeneratesaDateTimeforthe8thofSeptember2013 最佳答案 您可以使用扩展方法:publicstaticclassMyExtensions{publicstaticDateTimeSeptember(thisintday,intyear){returnnewDateTime(year,9,day);}}但是,这通常是不好的做法,我建议不要这样做,尤其是对于像这样微不足道的事情——newDateTime(20