gpt4 book ai didi

php - 如何对 MVC 类进行单元测试?

转载 作者:可可西里 更新时间:2023-10-31 22:47:12 24 4
gpt4 key购买 nike

我是一般单元测试的新手,但想以 MVC 模式(使用 PHP)实现它。现在我不确定如何处理这个问题。

单元测试应该内置到框架中,还是我们只创建一个名为 tests 的新文件夹并包含所有必要的类并对每个类进行单元测试?

简而言之,如果有一个模型M,它和框架本身也有一些耦合。那么为了测试模型,我应该在单元测试中包含框架的某些部分吗?

是否有一些很好的代码示例可以说明如何实现这一目标。

最佳答案

Should unit testing be built into the framework, or we just create a new folder called tests and include all necessary classes and unit test each one ?

您一定要为它创建一个单独的文件夹。出于性能和调试原因,将生产代码与测试混在一起通常不是一个好主意。

So to test the model, should I include some portions of the framework in the unit tests ?

越少越好。单元测试应该几乎不需要依赖项。如果类 A 依赖于 B,您应该模拟 B 以确保如果 B 失败,它不会使 A 也失败。

单元测试(如果正确完成)的主要优点是它可以让您轻松查明问题。如果 A 由于其 B 依赖性而失败,您将首先查看 A然后 B。同样,如果 B 依赖于 CC 失败,您将不得不查看 A Bthen C。这几乎破坏了单元测试的最大优势之一。如果所有测试都正确完成,C 中的失败将不会导致除 C 之外的任何其他地方失败,因此您将有一个单一的类来查找以解决问题。

要真正使您的代码防错,您可以将单元测试与PHP assertions 结合使用。 :

$return = $this->addOne($some_param);
assert('$return == $some_param + 1');

顺便说一句,单元测试 MVC 与一般的单元测试没有区别。

关于php - 如何对 MVC 类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com