单元测试代码重复测试,如何管理它们
Unit tests code duplication tests, how manage them
认为我以正确的方式使用 TDD
我有一个 class A 和 ATest class。我需要 class B 与 class A 几乎相同,我的决定是使用抽象 class - Alphabet,并将 A 和 B 的公共函数移动到那个 class .在那一刻我没有测试 Alphabet 抽象 class 因为我通过 A class 正确测试了所有功能并提升将它们抽象化,一切都很好并且以 TDD 方式工作。但是此时此刻,我的测试不仅涵盖 A ATest 中的部分功能,而且还涵盖 Alphabet ] 特定的测试用例,我应该在 B class、C、D 等中复制这些用例吗?
在你看来,我应该把那些测试用例放在哪里?
您应该将涵盖 Alphabet
功能的测试移至 AlphabetTest
class,并将它们从 ATest
中移除。
我建议您在测试 Alphabet
时创建一个子项并覆盖所有抽象方法虚拟功能。
我对你的问题的解决方案:你实施了一个扩展你的 Alphabet 的具体测试class。有了这个 Testingclass,现在您可以编写测试,测试您抽象的显式 class。 一个提示:你的具体测试class应该只在你的测试包结构中可用。
对于你的其他 class,比如 A、B 等,你现在可以编写测试,测试显式A、B 等的实现,您不必再显式测试抽象class。
此致
安德烈
将覆盖 Alphabet
代码的测试移动到摘要 class AlphabetTest
中。
现在,ATest
、BTest
(等等)必须扩展 AlphabetTest
。
运行 测试,您会看到 AlphabetTest
的测试针对 ATest
、BTest
(依此类推)
执行
认为我以正确的方式使用 TDD
我有一个 class A 和 ATest class。我需要 class B 与 class A 几乎相同,我的决定是使用抽象 class - Alphabet,并将 A 和 B 的公共函数移动到那个 class .在那一刻我没有测试 Alphabet 抽象 class 因为我通过 A class 正确测试了所有功能并提升将它们抽象化,一切都很好并且以 TDD 方式工作。但是此时此刻,我的测试不仅涵盖 A ATest 中的部分功能,而且还涵盖 Alphabet ] 特定的测试用例,我应该在 B class、C、D 等中复制这些用例吗?
在你看来,我应该把那些测试用例放在哪里?
您应该将涵盖 Alphabet
功能的测试移至 AlphabetTest
class,并将它们从 ATest
中移除。
我建议您在测试 Alphabet
时创建一个子项并覆盖所有抽象方法虚拟功能。
我对你的问题的解决方案:你实施了一个扩展你的 Alphabet 的具体测试class。有了这个 Testingclass,现在您可以编写测试,测试您抽象的显式 class。 一个提示:你的具体测试class应该只在你的测试包结构中可用。
对于你的其他 class,比如 A、B 等,你现在可以编写测试,测试显式A、B 等的实现,您不必再显式测试抽象class。
此致 安德烈
将覆盖 Alphabet
代码的测试移动到摘要 class AlphabetTest
中。
现在,ATest
、BTest
(等等)必须扩展 AlphabetTest
。
运行 测试,您会看到 AlphabetTest
的测试针对 ATest
、BTest
(依此类推)