gpt4 book ai didi

php - 测试 Controller = 集成测试?

转载 作者:可可西里 更新时间:2023-10-31 23:05:06 25 4
gpt4 key购买 nike

我曾经问过类似的问题。我们有一个论坛系统:

class ForumThread
{
public function delete ($threadId)
{
Container::getPost()->deletePostsByThreadId ($threadId);
Container::getSql()->sql ('DELETE FROM threads WHERE ID = '.$threadId);
}
}

class Post
{
public function deletePostsByThreadId ($threadId)
{
Container::getSql()->sql ('DELETE FROM posts WHERE THREAD_ID = '.$threadId);
}
}

如您所见,它从容器中获取帖子和线程对象,它可以被替换、模拟等。单元测试时,我觉得缺少了一些东西:所以,测试一个论坛线程是否真的是可以的删除-所以也发帖。这就是单元测试的目的 - 但它们一起是否很好地工作?如果它们独立运行良好,则不能保证它们协同工作良好。如果两个乐高积木制作精良,它们可能无法相互匹配。这里进入集成测试:

class Controller
{
function controllerDelete()
{
Container::getForumThread()->delete ($_POST['ID']);
}
}

我想在这里我可以检查两个 SQL 表。我的理论可以吗?因为如果 Controller 测试是类似单元测试的,那将毫无意义,因为 Controller 通常是最短的类(一旦我进行了测试 ForumThread::delete,测试 controller::controllerDelete 将是相同的

最佳答案

如您所知Unit testing主要集中在应用程序的最小可测试部分。所以如果他们通过了——你的单位水平就可以了。 Integration testing是另一回事——模块作为一个整体组合和测试。所以作为底线:

Is my theory OK?

是的。在这个级别的 Controller 测试中,您需要涵盖的是您已经根据应用程序设计和要求设置的功能、性能和可靠性。

关于php - 测试 Controller = 集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741677/

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