gpt4 book ai didi

c# - 子类的单元测试

转载 作者:太空狗 更新时间:2023-10-30 00:28:52 25 4
gpt4 key购买 nike

假设我们有这个 super 简单的类层次结构:

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;
}
}

在为 MoreMath 类编写测试时,是否应该为 Add 方法编写测试?或者我应该只在测试 SomeMath 类时关心该方法吗?更一般地说:我应该测试一个类的所有方法,还是应该只测试"new"方法?

我可以为双方提出一些理由。例如,当测试所有方法时,您最终会多次测试同一件事,这不是很好,而且会变得乏味。但是,如果您不测试所有方法,SomeMath 中的更改可能会破坏 MoreMath 的用法?这也是一件坏事。我想这可能也取决于具体情况。就像它是否扩展了我可以控制的类。但无论如何,我是一个完全的测试新手,所以我很想知道有哪些人比我更聪明:-)

最佳答案

通常我不会在子类中测试行为,除非子类改变了父类中预期的行为。如果它使用相同的行为,则无需对其进行测试。如果您打算对父类进行重大更改但子类仍然需要旧行为,那么我会首先在子类中创建测试以定义其所需的行为,然后我会在父类测试和后续测试中进行更改代码更改。这遵循 YAGNI 原则——您将不需要它——并延迟子测试的实现,直到它们真正有目的为止。

关于c# - 子类的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1782994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com