Svi*_*ish 4 c# unit-testing class-hierarchy
假设我们有这个超级简单的类hierchy:
public class SomeMath
{
public int Add(int x, int y)
{
return x + y;
}
}
public class MoreMath : SomeMath
{
public int Subtract(int x, int y)
{
return x - y;
}
}
Run Code Online (Sandbox Code Playgroud)
Add
在为MoreMath
类编写测试时,我应该为该方法编写测试吗?或者我在测试SomeMath
课程时是否应该只关心这种方法?更一般地说:我应该测试一个类的所有方法,还是应该只测试"新"方法?
我可以想出双方的一些理由.例如,在测试所有方法时,您最终会不止一次地测试相同的东西,这不是很好,而且可能变得乏味.但是,如果你不测试所有方法,改变SomeMath
可能会破坏用法MoreMath
?这也是一件坏事.我想这也可能取决于案例.就像它扩展了一个类,我可以控制或不控制.但无论如何,我是一个全新的测试新手,所以我很想知道人们比我想的更聪明:-)
通常我不会测试子类中的行为,除非子类改变了父类中预期的行为.如果它使用相同的行为,则无需进行测试.如果您计划对父类进行重大更改但子类仍然需要旧行为,那么我将首先在子类中创建测试以定义其所需行为,然后我将在父测试中进行更改代码更改.这遵循YAGNI原则 - 您不需要它 - 并延迟子测试的实施,直到它们实际有目的.
归档时间: |
|
查看次数: |
1816 次 |
最近记录: |