- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是一般单元测试的新手,但想以 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
依赖于 C
而 C
失败,您将不得不查看 A
, B
和 then 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/
我是一名优秀的程序员,十分优秀!