我对单元测试还不熟悉,但想在MVC模式(使用PHP)中实现它。现在我不确定该如何入手。
应该将单元测试构建到框架中,还是只需创建一个名为“tests”的新文件夹并包含所有必要的类并逐一进行单元测试?
简而言之,如果有一个模型M,它也与框架本身有些耦合。那么为了测试这个模型,我是否应该在单元测试中包括框架的某些部分?
是否有一些好的代码示例来说明如何完成这个过程。
我对单元测试还不熟悉,但想在MVC模式(使用PHP)中实现它。现在我不确定该如何入手。
应该将单元测试构建到框架中,还是只需创建一个名为“tests”的新文件夹并包含所有必要的类并逐一进行单元测试?
简而言之,如果有一个模型M,它也与框架本身有些耦合。那么为了测试这个模型,我是否应该在单元测试中包括框架的某些部分?
是否有一些好的代码示例来说明如何完成这个过程。
尽量少依赖于其他模块来进行单元测试,如果类A依赖于B,则应该模拟B以确保如果B失败,它不会导致A也失败。当正确使用时,单元测试的主要优点是可以轻松地定位问题。如果A因其B依赖项而失败,则首先查看A,然后再查看B。同样,如果B依赖于C并且C失败,则必须查看A,B和C。这基本上破坏了单元测试最大的优点之一。如果所有测试都正确执行,则C中的错误不会导致任何其他地方的失败,因此您只需查找单个类即可解决问题。
为了使您的代码真正健壮,可以将单元测试与PHP断言结合使用:
$return = $this->addOne($some_param);
assert('$return == $some_param + 1');
顺便说一下,单元测试MVC与普通的单元测试没有区别。