oop - 单元测试不同的类层次结构

标签 oop unit-testing testing tdd

进行考虑不同类层次结构的单元测试的最佳方法是什么,例如:

我有一个基类 Car 和另一个基类 Animal

Car 有派生类 VolksWagenFord。 Animal 有派生类 DogCat

您将如何开发在运行时决定要使用哪种对象的测试。 考虑到这些测试将应用于数百万个对象,在不使用代码复制的情况下实现此类测试的最佳方法是什么 来自不同的层次结构?

这是问我一个 friend 的面试问题。

最佳答案

我所看到的问题:避免重复通用测试来验证通用基类型的 n 个派生。

  • 创建抽象测试夹具。在这里,您使用抽象方法 GetTestSubject() 在抽象基类(搜索词“抽象测试夹具”)中编写针对基类型 & 的测试。此类型的派生覆盖方法以返回要测试的类型的实例。因此,您需要使用一个覆盖的方法编写 N 个子类型,但您的测试将只编写一次。
  • NUnit 等一些单元测试框架支持“参数化测试”(搜索词)——您必须在其中实现一个方法/属性,该方法/属性将返回测试需要针对的所有对象。然后它将在运行时针对每个此类对象运行一个/所有测试。这样您就不需要编写 N 个推导 - 只需一个方法。

关于oop - 单元测试不同的类层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041740/

相关文章:

java - 我什么时候应该在类里面使用 "this"?

android - 如何为 Android 的 appium 自动化编写测试套件

java - Quarkus PanacheEntity 在测试期间未保存

reactjs - 绕过 React 组件中的获取调用

JavaScript 和 NodeJS : Calling method from different JS file

javascript - 在 Javascript 中使用 OOP 返回未定义的值

c++ - 返回其自身类型的模板类方法的正确签名

ruby-on-rails - 在 Ruby on Rails 中,您测试 Controller 和 View 还是大多数模型?

c# - 使用最小起订量模拟 HttpContext 进行单元测试

c++ - 使用 Boost::Test 测试 DLL?