是否应测试模型类?

时间:2015-09-24 14:25:15

标签: unit-testing testing

是否应测试模型类?

模型类不包含逻辑,但通常在构造函数中包含一些用于初始化的逻辑。

这些类也是共享的,因此这些类正确初始化非常重要。

如果要测试模型类,测试的标准是什么?或者使用它们的班级有责任测试它们?

3 个答案:

答案 0 :(得分:3)

根据模型 - 视图 - 控制器设计模式,重点是模型类包含所有逻辑。记住 -

  

更薄的观点,薄控制器,胖模型。

Tutorial

因此,根据该原则,所有业务逻辑都应包含在模型中。因此,模型应该进行彻底测试。 此外,数据是任何Web项目中最重要的组件。因此,确保模型具有足够的验证,并且他们不允许垃圾数据进入db是非常关键的。

这就是MVC所说的。虽然我同意尝试将所有内容都安装到MVC构造中是一种非常常见的反模式。更好的方法是使用不同的类来维护不属于任何MVC结构的业务逻辑,尽管它们也必须在模型中封装

此外,就测试而言,一般情况下,我相信任何可用的代码都应该为它们提供至少适度的测试套件。测试是代码的工作规范,或者应该是。他们会引导其他人了解您的代码正在做什么,如何在不破坏任何内容的情况下进行更改。

注意: - 不要测试您的图书馆,即不要测试django代码或mongoengine

答案 1 :(得分:2)

如果您关心代码是否有效,则应对其进行测试。这适用于所有代码。

鉴于此,如果您在运行其他测试时运行了模型代码,则可能没有必要进行特定于模型的测试。但是,测试编写起来相对便宜,可能会带来巨大的回报,因此没有理由不为您的模型编写一些快速测试。

答案 2 :(得分:-3)

没有

这样的测试几乎没有价值,因为你将在其他测试中创建模型实例,对于使用/使用所述模型的组件。因此,您不需要专门的模型测试,因为它们会间接测试很多次。