php - 使用 Simpletest 对 CodeIgniter 进行单元测试 - 很少的测试

标签 php unit-testing testing codeigniter integration-testing

在我们的开发团队中,我们决定尝试进行单元测试。我们使用简单测试。然而,这是一条艰难的道路。一周后,我只创建了 1 个单元测试来测试某个帮助文件。而已。其余的( Controller 、模型、 View 、库)还没有单元测试。我计划不测试其中的大多数。例如, View 太琐碎而无法测试,所以我放弃了测试。接下来, Controller 。我计划我的 Controller 不做复杂的事情,所以它只在模型和 View 之间传递信息。我会把那些更复杂的东西移到图书馆或助手那里。

现在回答我的问题:

1) 我做错了吗?到目前为止,我看不出还有什么可能是错误的,因此需要进行单元测试。大多数东西(现在)只是 CRUD。
2) 我们真的需要对 Controller 进行单元测试吗?由于 Controller 的工作只是对 View 和 Model 之间传递的数据进行少量处理,因此我发现对其进行单元测试的主动性很小。
3) 如果我使用 WebTestCase 来测试 Controller ,那是否仍被视为单元测试?或者它已经是一个集成测试?
4) 假设你让我测试我的 Controller ,我将如何测试它?据我所知,CI 通过 index.php 遵循前端 Controller 模式,那么我将如何处理(模拟?)它?

最佳答案

如果您仍然对 CodeIgniter 的另一个单元测试的建议持开放态度,我建议您尝试 Toast .我发现它易于使用,并且不会对我的开发过程造成太大干扰。

我只使用单元测试来测试我的库、助手和模型。我的 Controller 没有太多代码,只获取 post 和 uri 参数,使用 trim 或 intval 对其进行清理,将其传递给库或模型,然后将结果传递给 View 。

View 几乎没有要测试的代码,因为它向浏览器显示所有内容。大多数情况下,它只需要 css 和 js 调试。

模型几乎总是需要测试,因为它处理数据。没有单元测试,我发现很难跟踪一些错误,特别是在计算复杂的情况下。

库和助手执行重复性任务,因此需要进行单元测试以确保其中的逻辑正确地完成工作。

希望对您有所帮助。

关于php - 使用 Simpletest 对 CodeIgniter 进行单元测试 - 很少的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1740416/

相关文章:

testing - CLIPS:测试正确的事实

php - 对特定 Controller 功能的授权 Laravel 5.1

PHP SQL 循环返回 PHP 代码

unit-testing - 运行单个Grails单元/集成测试将在Intellij上运行所有测试

c# - 测试订阅 EventAggregator

Angular4 karma 代理通配符

python - pytest 无法发现 VSCode 中的测试

php - FFMPEG 或 ImageMagick 用于图像转换和调整大小(速度/内存使用)?

php - 计算日期时间集之间的总时间

python - 断言一次运行明显快于另一次运行