gpt4 book ai didi

php - 需要帮助编写 php 测试文件来测试我的 PHP Controller 类

转载 作者:行者123 更新时间:2023-11-28 21:03:20 24 4
gpt4 key购买 nike

根据我之前的网站开发,我们构建了几个 Controller 类,对应于我们网站开发中将出现的实体。我们的网站非常简单:只是一个购物网站,供客户预订旅游巴士。

现在我被分配了一个具有挑战性的任务需要完成,即针对单个 Controller 类,我需要编写一个测试用例来测试它是否正常工作。

例如,我们有一个名为“JobsController”的 Controller 类,例如:

models = array( 'jobs' => new Jobs() ); } 函数 __destruct() { parent ::__破坏(); } 函数 addJob( $name , $desc ) { 如果($名称=='') { 返回假; }; $params = array( 'name' => $name , '描述' => $desc ); 返回 $this->models['jobs']->add($params); } 函数 modifyJob($jid,$name,$desc) { 如果($jid == '' || $name == '') { 返回假; }; $params = array( 'name' => $name , '描述' => $desc ); 返回 $this->models['jobs']->modify( $jid , $params ); } 函数 removeJob( $jid ) { 如果($jid == '') { 返回假; }; 返回 $this->models['jobs']->remove( $jid ); } 函数 getJob( $jid ) { 返回 $this->models['jobs']->getInfo( $jid ); } 函数 getAllJobs() { 返回 $this->models['jobs']->getAll(); } }?>

和其他所有Controller类几乎一样,只是名称有所变化。

现在我真的需要你们帮助我如何编写一个简单的 php 文件来测试这个 Controller 类是否正常工作。在研究了你的代码之后,我可以亲自动手使用其余 Controller .

非常感谢!

最佳答案

编写测试用例时,您基本上是在测试前后场景。在运行测试之前,您希望初始化一个干净的环境(每次)以确保您知道会发生什么。接下来,您将运行您的方法并测试之后的环境,确认您采取的操作是否产生了预期的效果。

例如,为了测试您的 modifyJob 方法,您想要创建一个带有作业的环境,使用测试值调用 modifyJob 方法,然后在同一个作业上调用 getJob 并确保返回值的值与您传入的值匹配修改作业:

function testModifyJob() {
// create clean, known environment
$controller = new JobsController();
$job_id = $controller->addJob('name', 'description');

// run the action
$controller->modifyJob($job_id, 'new name', 'new description');

//test the results
$job = $controller->getJob($job_id);
$result = $job['name'] == 'new name' && $job['description'] == 'new description';

return $result;
}

为了测试您的 Controller ,您需要为该类提供的每个方法编写类似上述的测试用例,以确保该对象在您的系统中是可信的。

在编写测试用例时,您很可能需要在 Controller 上为测试创建新方法,请继续创建这些方法(如果您的任务允许)。测试用例提出这一点是很常见的,并且通常通过揭示这些细微差别来帮助完善类的可用功能(测试驱动开发具有如此强大的追随者的原因之一)。这方面的一个示例是创建一个 hasJob($job_id) 方法来测试您的作业集合是否包含特定作业,从而允许您测试诸如 deleteJob() 之类的函数。

关于php - 需要帮助编写 php 测试文件来测试我的 PHP Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248979/

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