草庐IT

fluent-assertions

全部标签

c# - NUnit 3.0 和 Assert.Throws

我正在使用NUnit3.0编写一些单元测试,与v2.x不同,ExpectedException()已从库中删除。基于this答案,我绝对可以看到试图在测试中具体捕获人们期望他们的系统抛出异常的地方的逻辑(而不是仅仅说“测试中的任何地方”)。但是,我倾向于非常明确地说明我的Arrange、Act和Assert步骤,这使它成为一个挑战。我曾经做过这样的事情:[Test,ExpectedException(typeof(FormatException))]publicvoidShould_not_convert_from_prinergy_date_time_sample1(){//Arra

c# - Assert.Are Equal 和 Assert.AreSame 之间的区别?

Assert.AreEqual和Assert.AreSame有什么区别? 最佳答案 这意味着AreSame()检查它们是否是完全相同的对象-如果引用指示内存中的相同对象。AreEqual()检查对象是否具有相同的类型和值。相同的对象可以存在于内存中的两个不同位置。 关于c#-Assert.AreEqual和Assert.AreSame之间的区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c# - Entity Framework 代码优先 Fluent Api : Adding Indexes to columns

我正在运行EF4.2CF并希望在我的POCO对象中的某些列上创建索引。举个例子,假设我们有这个雇员类:publicclassEmployee{publicintEmployeeID{get;set;}publicstringEmployeeCode{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}publicDateTimeHireDate{get;set;}}我们经常通过他们的员工代码搜索员工,并且由于有很多员工,出于性能原因将其编入索引会很好。我们能否以某种方式使用流畅的API来做到这一点?

c# - 使用 Fluent Validation 进行条件验证

我需要的是一种根据是否填写其他字段来有条件地验证字段的方法。例。我有一个下拉菜单和一个相关的日期字段。如果没有设置任何字段,则表单应该通过验证。但是,如果设置了两个字段之一而另一个未设置,则应触发验证,要求设置另一个字段。我已经编写了自定义验证类,但它似乎只对单个字段进行验证。有没有办法使用内置验证器来设置我需要的验证?如果没有,是否有使用自定义验证器连接两个字段的好方法? 最佳答案 Fluentvalidation支持条件验证,只需使用When子句检查辅助字段的值:https://docs.fluentvalidation.net

c# - 如何使用 Entity Framework Code First Fluent API 指定表名

我有一个实体,我要配置EntityFramework以将其映射到具有不同名称的数据库表。我可以使用CodeFirstDataAnnotations轻松做到这一点(DataAnnotations.Schema.TableAttribute)。但由于限制现在我必须使用CodeFirstFluentAPI(我的域对象将由外部客户端使用,因此它们不应该是特定于技术的——例如对DataAnnotations有任何引用)我在MSDN上搜索过,但一无所获。那么这可能吗?如何实现?谢谢。 最佳答案 您还可以使用表格注释:[Table("Intern

c# - 为什么 Assert.AreEqual(T obj1, Tobj2) 会因相同的字节数组而失败

我在下面的代码段中有两个相同的字节数组://////AtestforBytes///[TestMethod()]publicvoidBytesTest(){byte[]bytes=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketData);TransferEventArgstarget=newTransferEventArgs(bytes);byte[]expected=Encoding.UTF8.GetBytes(Properties.Resources.ExpectedPacketValue);byte[]actu

c# - 使用 Assert 测试异常以确保它们将被抛出的最佳方法

您认为这是测试异常的好方法吗?有什么建议吗?Exceptionexception=null;try{//Imsurethatanexeptionwillhappenhere}catch(Exceptionex){exception=ex;}Assert.IsNotNull(exception);我正在使用MS测试。 最佳答案 我使用了几种不同的模式。大多数情况下,我会在预期会出现异常时使用ExpectedException属性。这足以满足大多数情况,但是,在某些情况下这还不够。异常可能无法捕获——因为它是由反射调用的方法抛出的——或

c# - 如何使用 Assert.Throws 断言异常类型?

如何使用Assert.Throws断言异常类型和实际消息措辞?像这样:Assert.Throws(()=>user.MakeUserActive()).WithMessage("Actualexceptionmessage")我正在测试的方法抛出多条相同类型的消息,但消息不同,我需要一种方法来测试是否根据上下文抛出正确的消息。 最佳答案 Assert.Throws返回抛出的异常,让您可以对异常进行断言。varex=Assert.Throws(()=>user.MakeUserActive());Assert.That(ex.Mess

go - 不能在赋值 : need type assertion 中使用类型接口(interface) {} 作为类型人员

我尝试将interface{}转换为结构person...packagemainimport("encoding/json""fmt")funcFromJson(jsonSrcstring)interface{}{varobjinterface{}json.Unmarshal([]byte(jsonSrc),&obj)returnobj}funcmain(){typepersonstruct{NamestringAgeint}json:=`{"Name":"James","Age":22}`actualInterface:=FromJson(json)fmt.Println("actu

go - stretr/testify/assert 只提供堆栈跟踪,缺少实际的错误消息

我有以下测试,我想将其转换为使用github.com/stretchr/testify/assert导入,完成这项工作的最佳做​​法是什么?现在的代码:funcTestSdk(t*testing.T){ctx:=context.Background()sdk,err:=NewSdk(ctx)iferr!=nil{t.Errorf("UnabletogetVMwareSDK:%v",err)}defersdk.GovClient.Logout(ctx)}Error:FAIL|---FAIL:TestSdk(0.00s)|sdk_test.go:48:UnabletogetVMwareSD