- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个测试来验证方法的集合输出。此测试变体通过了:
[TestMethod, TestCategory("BVT")]
public void TheStatusesAreReturned()
{
var expectedUnprocessedStatuses = new List<FileUploadStatus>
{
FileUploadStatus.InProcess,
FileUploadStatus.Pending,
};
Sut.GetUnprocessedStatuses()
.Should()
.BeEquivalentTo(expectedUnprocessedStatuses);
}
此测试变体失败,并出现错误“预期 item[0] 为 InProcess,但发现 Pending”:
[TestMethod, TestCategory("BVT")]
public void TheStatusesAreReturned2()
{
var expectedUnprocessedStatuses = new List<FileUploadStatus>
{
FileUploadStatus.InProcess,
FileUploadStatus.Pending,
};
Sut.GetUnprocessedStatuses()
.ShouldBeEquivalentTo(expectedUnprocessedStatuses);
}
显然,ShouldBeEquivalentTo
关心集合项的顺序,而 BeEquivalentTo
则不关心。为什么这两种方法之间的等价概念不同?
最佳答案
你是对的。 Should().BeEquivalentTo() 使用各个项目的 Equals() 实现来验证等效性,并且自版本 1 以来一直存在。FA 2.0 中引入的较新的 ShouldBeEquivalentTo() 正在进行深入的结构比较,并报告任何差异。对于 2.1,我将更改行为,使其更像默认的集合等效
关于unit-testing - FluentAssertions ShouldBeEquivalentTo() 与 Should().BeEquivalentTo(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149497/
如何比较具有名称相同但类型不同的属性的对象? public class A { public Guid Id { get; set; } } public class B { publ
我正在集成测试中创建两个相同类型的对象,但试图排除在创建对象时生成的自动递增成员。 我成功排除了 RecordId 和 Number 属性,但对 Id 属性的等效性测试失败。 RecordId 和 n
我有一个测试来验证方法的集合输出。此测试变体通过了: [TestMethod, TestCategory("BVT")] public void TheStatusesAreRetur
尝试比较具有单个私有(private)字段的对象 像这样的对象: public struct A { private readonly byte[] bytes; public A(b
我在单元测试中使用流畅的断言,但是使用 ShouldBeEquivalentTo , ShouldAllBeEquivalentTo , 和 BeEquivalentTo不清楚。 例如;以下所有语句都
谁能总结一下它们之间的区别和使用范围? 我阅读了 SO 文章, ShouldBeEquivalientTo() :ShouldBeEquivalentTo() 旨在用于比较复杂的对象图,而不是 .NE
我有以下测试说明了我试图实现的一个简单示例(两个等效列表的比较): [Fact] public void Test() { // Arrange var list1 = new Lis
我有一个名为 HandRank 的类,它有一个 Id 属性。 Id 属性由我的数据库生成。 public class HandRank { [Key] [DatabaseGenerat
我有一个名为 HandRank 的类,它有一个 Id 属性。 Id 属性由我的数据库生成。 public class HandRank { [Key] [DatabaseGenerat
我有一个简单的类,它有两个属性并覆盖了 Equals 方法: public class Person : IEquatable { public Guid Id { get; set; }
我是一名优秀的程序员,十分优秀!