c# - 您如何测试是否已创建对象的新实例?

标签 c# unit-testing xunit

我使用 C#、xUnit 和 Moq 进行单元测试。我有一个具有复杂类型属性的对象。要“清除”该属性及其所有属性,我这样做:

this.ComplexTypeInstance = new ComplexType();

现在我试图断言 ComplexTypeInstance 已分配给一个全新的对象。我的第一个想法是将 ComplexTypeInstance 与 new ComplexType() 进行比较,看看它们是否相等。但是要执行类似的操作,我认为我必须重写 equals 运算符。有什么方法可以轻松检查所有属性是否都设置为默认值?或者有没有办法断言我已经更新了对象?

最佳答案

Or is there a way to assert that I've newed up the object?

只需使用 ReferenceEquals 比较旧引用和新引用之间的引用。如果它们不同,则该属性已被替换。

var origInstance = this.ComplexInstance;
... // Some operation
Assert.False(object.ReferenceEquals(this.ComplexInstance, origInstance));

关于c# - 您如何测试是否已创建对象的新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686456/

相关文章:

javascript - Uncaught Error : Not an Array - google charts

c# - 在 C# 中选择禁用文本框中的文本

javascript - 使用 Karma 工厂来测试来自 $resource 的服务

unit-testing - .NET Framework 上的单元测试和 Web 测试?

unit-testing - 您需要从测试工具中获得什么?

c# - 我可以在 C# file.writeallbytes 中将日期/时间添加到输出文件名吗

c# - 将数据网格导出到 excel asp

javascript - 如何使用 Jasmine (Angular js) 对自定义装饰器进行单元测试

c# - .net core mvc Mocking Identity and claims 并测试用户是否有声明

Matlab 从 XUnit 迁移到 Matlab 2013 单元测试