C# FluentAssertions:更改属性的默认比较应等效
我有一个名为“InActiveFlag”的布尔属性模型,它来自第三方API。这将映射到视图模型中名为“IsActive”的属性。“IsActive”是“InActiveFlag”的反义词 以下是ViewModel类:C# FluentAssertions:更改属性的默认比较应等效,c#,fluent-assertions,C#,Fluent Assertions,我有一个名为“InActiveFlag”的布尔属性模型,它来自第三方API。这将映射到视图模型中名为“IsActive”的属性。“IsActive”是“InActiveFlag”的反义词 以下是ViewModel类: public class ViewModel { public int Id { get; set; } public string Description { get; set; } [Display(Name = "Is Active")] p
public class ViewModel
{
public int Id { get; set; }
public string Description { get; set; }
[Display(Name = "Is Active")]
public bool IsActive { get; set; }
}
public class Model
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("inactiveFlag")]
public bool InactiveFlag { get; set; }
}
这是模型类:
public class ViewModel
{
public int Id { get; set; }
public string Description { get; set; }
[Display(Name = "Is Active")]
public bool IsActive { get; set; }
}
public class Model
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("inactiveFlag")]
public bool InactiveFlag { get; set; }
}
我试图通过shouldbeeequivalent的options参数将列表
与列表
进行比较,但我还没有弄清楚
我的控制器使用AutoMapper将列表
转换为列表
,如下所示:
List<ViewModel> viewModel = _mapper.Map<List<Model>>(listOfModels);
但这甚至没有编译
我已经查看了文档,但是选项。使用
示例只会修改现有的预期,我需要替换它,因为字段名称不同
我如何告诉FluentAssertions将subject的属性与expectation参数的特定属性进行比较,并覆盖相同的名称约定?测试的最初一瞥显示您的目标是
ViewResult.Model
,它是类型对象
。首先尝试转换模型,然后尝试断言,这样您就可以利用泛型。另外,如果在测试中使用async使测试方法async Task
而不是async void
谢谢@Nkosi,我现在正在强制转换ViewResult.Model
,但我仍然不知道如何告诉FA该字段在模型中有不同的名称,并且是相反的值。该视图返回的是单个视图模型还是列表?您强制转换为单个视图模型,但正在将其与模型列表进行比较。我仍在研究这个框架是否能实现你想要实现的目标,它应该是一个列表。在过去的几周里,我读了很多遍。看起来和我想做的最密切相关,解决方案是排除这些属性并分别比较它们。我想我也会这么做。