【发布时间】:2022-01-09 11:02:57
【问题描述】:
如何在编写测试用例时获得object ICloneable.Clone() 方法的覆盖率。
#region ICloneable Members
object ICloneable.Clone()
{
return this.Clone();
}
public new Blue Clone()
{
Blue _temp = (Blue)this.MemberwiseClone();
_temp.Node = Node.Clone();
return _temp;
}
#endregion
目前的覆盖范围是这样的
.
【问题讨论】:
-
你不能只
new你的类的实例,设置所有的属性。然后克隆它并断言属性的值。直接调用它,并通过转换为IClonable,将结果转换回您的类型 -
我希望我可以修改现有功能的实现方式,但我不能;只需要编写测试用例。 @Flydog57
-
我正在描述两个测试,而不是更改现有代码
-
好吧,你的意思是这样吗? ICloneable 可克隆 = (ICloneable) blue.Clone();我试过但没有覆盖。
-
@RohanNirer
object b = ((ICloneable)blue).Clone();请注意,在调用Clone之前先将蓝色转换为ICloneable。您可以随时回退以进行比较和断言
标签: c# unit-testing moq code-coverage