覆盖仅在C#中测试所需的Equals和GetHashcode方法的最佳位置 - c#

我需要覆盖Equals()GetHashCode(),以便可以在单元测试中比较同一类的两个对象。

假设我在生产中具有类:MyClass,目前对覆盖上述方法没有特殊要求。

但是,在测试中,我想使用overridden Equals比较它们。我是不是该:

直接在MyClass中实现方法
从MyClass创建一个派生类,该类包含重写,然后在我的测试中适当地投射MyClass的实例:

//获取预期的MyClass的实例
//获取实际MyClass的实例
Assert.AreEqual((TestMyClass)expected,(TestMyClass)actual);

我倾向于选择2,因为我认为它可以使生产代码更整洁。将来还可以直接在MyClass上进行特定于业务逻辑的覆盖,如果可能的话,这样做可能会与我在测试中所做的方式不同。

我想缺点是测试和测试项目变得更加复杂。

首选方法是什么?

参考方案

我建议在测试项目中实现IEqualityComparer<T>接口。 .NET还注意到此接口用于某些集合类和LINQ中的自定义相等性比较。

Java中的“ <<”运算符 - java

最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…

单元测试休息点 - java

我已经用Java编写了REST端点。应用程序中有c#代码使用RestClient调用这些端点。我正在考虑为这些编写单元测试。只是想知道什么是最好的方法? Moq框架或NUNIT还是其他?有任何想法吗?谢谢。 参考方案 如果要在Java中测试REST端点,则可以使用Mockito(https://site.mockito.org/)之类的模拟框架来模拟所需的任…

PHPUnit测试的目录布局? - php

我是从事PHP项目的长期Java程序员,并且试图使PHPUnit正常工作。使用Java进行单元测试时,通常将测试用例类和常规类放在单独的目录中,如下所示-/src MyClass.java /test MyClassTest.java 等等。使用PHPUnit进行单元测试时,遵循相同的目录结构是常见的做法,还是有更好的方法来布置测试类?到目前为止,我可以使“…

未处理的异常Junit - java

我无法运行测试,因为此语句decorator.decorate(new EncoderColumnDecorator())中的测试出现红色弯曲的错误行,要求我使用try / catch或add throws。 这是错误消息。 当我已经具有“ expected”属性时,为什么必须放置try / catch或引发异常我的单元测试:@Test(expected=D…

LeetCode题解拼凑硬币

小Q十分富有,拥有非常多的硬币,小Q拥有的硬币是有规律的,对于所有的非负整数K,小Q恰好各有两个面值为2^k的硬币,所有小Q拥有的硬币就是1,1,2,2,4,4,8,8.....小Q有一天去商店购买东西需要支付n元钱,小Q想知道有多少种方案从他拥有的硬币中选取一些拼凑起来恰好是n元(如果两种方案某个面值的硬币选取的个数不一样就考虑为不一样的方案)输入:输入包…