0
A
回答
0
我觉得这是更好地重写您SomeClass
的Equals
和GetHashCode
方法比较Id和Name属性:
public class SomeClass
{
public int Id { get; set; }
public string Name { get; set; }
public override bool Equals(object obj)
{
SomeClass other = obj as SomeClass;
if (other == null)
return false;
return other.Id == Id && other.Name == Name;
}
// GetHashCode implementation
}
断言看起来像:
Assert.AreEqual(expectedObject, someClass);
如果您不想或不能更改SomeClass
实施,那么您可以创建方法,它会做断言:
public void AssertAreEqual(SomeClass expected, SomeClass actual)
{
Assert.AreEqual(expected.Id, actual.Id);
Assert.AreEqual(expected.Name, actual.Name);
}
评估调试器显示字符串不是简单的任务,因为DebuggerDisplayAttribute
只包含格式字符串,它是用来评估在调试对象的字符串表示。除简单属性名称之外,该字符串还可以包含表达式和方法调用。您可以在Roslyn编译器的帮助下评估调试器显示值,如here所述。但我不认为使用调试器元数据是检查对象相等性的好方法。
相关问题
- 1. 我可以在JUnit测试中打印信息消息吗?
- 2. 在单元测试中使用SpringRunner可以吗?
- 3. 我可以在骡子单元测试中嘲笑消息丰富吗?
- 4. 我们可以在asp.net中单元测试global.asax吗?
- 5. 我可以在Spock中编写单元测试吗?
- 6. 我可以在单元测试中做到这一点吗?
- 7. 我可以使用单元测试工具进行集成测试吗?
- 8. 重写单元测试可以吗?
- 9. Python:在鼻子/单元测试中使用记录信息?
- 10. 我可以使用jtracert在eclipse中运行的单元测试序列图吗?
- 11. 我可以在Visual Studio单元测试(类库)项目中使用Xamarin.Forms.DependencyService吗?
- 12. 我可以调用嵌套函数进行单元测试吗?
- 13. 我可以使用Xamarin.Android单元测试应用程序中的新NUnit API吗?
- 14. 你可以在VS2008的单个测试项目中分组单元测试吗?
- 15. 我可以强制使用Visual Studio单元测试框架对属性进行单元测试吗?
- 16. 使用TestContext在单元测试之间共享信息
- 17. PHP exec使用内存使用信息进行单元测试
- 18. “单元测试”时可以使用断点吗?
- 19. 这个测试是否稳健?我可以在单元测试中使用DispatchQueue.main.async()吗?
- 20. 在VS2010单元测试中,我可以检测测试是否正在运行或调试吗?
- 21. 我可以使用ICodeCompiler的服务引用来创建单元测试吗?
- 22. 我可以单元测试Informatica Powercentre工作流程吗?
- 23. 我们可以为AngularJS routeProvider编写单元测试吗?
- 24. 我可以为外部服务(iPhone)构建单元测试吗?
- 25. 在ServiceStack中可以模拟单元测试的Request.OriginalRequest对象吗?
- 26. 我应该在单元测试中使用AutoMapper吗?
- 27. 我只能在单元测试中使用BOOST_CHECK吗?
- 28. 我可以使用机架测试进行部署测试吗?
- 29. 单元可以测试未在.h文件中声明的测试方法吗?
- 30. 可以在PHPUnit中测试单元测试的日志警告吗?
您会看到,它是一个具有此属性集的外部类,因此我无法对其进行修改。我不想仅仅为了测试目的而重写它。 – dbardakov
OFc,我可以自己收集这些属性值,但使用我提供的伪代码不方便吗? ) – dbardakov
@dbardakov从一些对象的调试器显示属性来评估格式字符串并不那么简单。 [Here](http://stackoverflow.com/questions/10942258/any-code-that-duplicates-how-the-debuggerdisplayattribute-generates-the-resultin)是使用[Roslyn](http:// msdn。 microsoft.com/en-US/roslyn)编译器。我会用一些对象比较器方法 –