【问题标题】:Python unit testing interfacesPython 单元测试接口
【发布时间】:2012-07-01 18:35:54
【问题描述】:

这是Unit Testing Interfaces in Python的扩展

我的问题是满足接口的类的数量最终会达到数千个。不同的开发人员处理不同的子类。

我们不能让一个子类的单元测试失败,而其他子类的测试失败。本质上,我需要为每个满足接口的子类创建一个新的 unittest.TestCase 类型。

如果无需修改测试模块就能做到这一点,那就太好了。 (我想避免每次添加满足接口的新子类时更新单元测试模块)。

我希望能够为满足接口的类自动创建 unittest.TestCase 类类型。这可以使用元类来完成。

但是这些类需要添加到测试模块中进行测试。这可以在类定义期间完成而不需要修改测试模块吗?

【问题讨论】:

  • 真的吗?数千个子类?这听起来像是一个错误的解决方案,你可以在一开始就采取不同的做法。此外,您链接到的问题的第一个答案是“nosetest test generation”。为什么这不是您问题的答案?
  • 是的,我们正在处理极其多样化的数据。每次编写新的子类时,鼻子测试生成都需要更新测试模块。

标签: python unit-testing


【解决方案1】:

如果您正在编写单独的子类,除了成功实现接口之外,它们之间必须存在差异需要测试。编写一个名为 satisfies_the_thousand_class_interface 的方法来测试接口,将其添加到您的自定义 TestCase 类中,然后让您的一千个测试用例中的每一个(每个子类一个)除了他们所做的所有专门测试外,也调用该方法.

【讨论】:

  • 它们本质上只是满足一个界面。我不想测试它们的独特功能。
  • 您有成千上万个课程,您对测试它们之间的不同之处不感兴趣吗?现在我真的确信你做错了......
  • 他们的接口实现不同。
  • 为了给您更多色彩,我们正在使用金融工具。每个仪器的价格不同,但输出是一个有效的可测试数字。我们正在针对定价界面测试此输出。
  • 为什么不是一个具有多个参数的类,而您以不同的方式实例化它以产生不同的乐器?
猜你喜欢
  • 2011-09-30
  • 2012-11-27
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多