Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing CakePHP SimpleTest-控制器测试与Web测试_Unit Testing_Model View Controller_Cakephp_Simpletest - Fatal编程技术网

Unit testing CakePHP SimpleTest-控制器测试与Web测试

Unit testing CakePHP SimpleTest-控制器测试与Web测试,unit-testing,model-view-controller,cakephp,simpletest,Unit Testing,Model View Controller,Cakephp,Simpletest,我希望使用SimpleTest在CakePHP(1.3)中测试基本CRUD操作。 例如,我希望添加一条新记录,并确保在验证失败时收到一条错误消息,在保存顺利时收到一条新记录。 使用$this->post()或$this->setField()将这些测试编写为(1)相关操作的控制器测试(例如add())还是(2)Web测试更好?这是一个老问题,但仍然没有答案,所以我将试一试 我相信你需要做的第一件事是更好地分离你的顾虑。现在你所做的,至少对我来说,是…意味着有些事情不对 我是怎么得出这个结论的 嗯

我希望使用SimpleTest在CakePHP(1.3)中测试基本CRUD操作。
例如,我希望添加一条新记录,并确保在验证失败时收到一条错误消息,在保存顺利时收到一条新记录。

使用$this->post()或$this->setField()将这些测试编写为(1)相关操作的控制器测试(例如add())还是(2)Web测试更好?

这是一个老问题,但仍然没有答案,所以我将试一试

我相信你需要做的第一件事是更好地分离你的顾虑。现在你所做的,至少对我来说,是…意味着有些事情不对

我是怎么得出这个结论的

嗯,你问的问题以及你是如何回答的。你要问的问题是:

“我应该如何测试模型的功能?”

你的回答是:

“从控制器视图测试它”

所以,我要做的第一件事是在适当的模型中设置一个方法来做你想要做的事情。写出你认为需要的代码。保存一条记录,并根据您提出的任何条件语句返回您正在查找的适当值

之后,我会设置一些装置,以便您有一些数据进行测试。您可以在CakePHP手册中了解更多关于CakePHP装置以及如何创建它们的信息(在未来的项目中,我会先制作装置,但这只是个人喜好)

一旦你的装置设置好了,你就可以继续测试你的新模型方法了。在我看来,在CakePHP中测试模型是最容易的。我不会在这里详细介绍,只是因为CakePHP手册中有大量关于如何测试模型的信息

此时,您应该有一个经过适当单元测试的模型动作,并且适当地将关注点分开

也就是说,如果您感觉非常有活力,并且希望从各个角度对代码进行测试,那么请务必设置控制器测试,以确保操作正确执行。设置web测试以确保整个软件包都能正常工作


不过,首先,请将您的顾虑分开。

非常感谢您提供了信息丰富的答案。我确实对模型进行了测试,但我希望测试整个过程是否正常工作,因为在保存或显示数据之前对数据进行了一些操作。我不想把时间花在编写控制器测试和web测试上——我很高兴知道你认为哪个应该是首选。如果你想确保你的应用程序作为一个整体一起工作,我会说这三个都是。模型、控制器和web测试。相信代码是稳定的,这是实现远程安全的唯一方法。无测试==无稳定性