是否应测试模型类?

Ray*_*rof 9 testing unit-testing

是否应测试模型类?

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

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

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

hsp*_*her 5

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

更薄的视图、瘦控制器、胖模型。

教程

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

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

此外,就测试而言,我认为任何工作代码都应该至少有适度的测试套件。测试是代码的工作规范,或者更确切地说它们应该是。他们指导其他人了解您的代码正在做什么,如何在不破坏任何内容的情况下对其进行更改。

注意:-不要测试你的库,即不要测试 django 代码或 mongoengine


Bry*_*ley 5

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

鉴于此,如果您的模型代码在运行其他测试时得到锻炼,则可能没有必要针对您的模型进行特定的测试。然而,编写测试的成本相对较低,并且可能会带来巨大的好处,因此没有理由不为您的模型编写一些快速测试。