【发布时间】:2017-09-08 06:14:21
【问题描述】:
我正在接近 phpunit 单元测试的 100% 代码覆盖率,但我目前唯一没有覆盖的是路由。而且我不确定如何测试它。有人可以帮忙吗?
我正在使用 Silex 框架按以下方式进行路由:
$api->put('/update/{websiteName}/{endpointName}', function($websiteName, $endpointName, Request $request) use ($databaseServiceContainer, $sourceRetrievalService) {
$controller = new RequestController(
$databaseServiceContainer,
$sourceRetrievalService
);
return $controller->update(
$websiteName,
$endpointName,
$request
);
});
包括创建路由本身,但不包括其中的匿名回调。
正如您在这张图片中看到的那样:
【问题讨论】:
-
不,抱歉。那将是功能测试,而不是单元测试:)
-
由于您在路由定义中创建服务,因此测试它会有点困难,不是吗?
-
为什么必须是单元测试?归根结底,经过适当测试的应用程序是通过组合测试方法完成的,限制它听起来更像是一种人为的需求,而不是想要正确地测试您的应用程序。
-
我根据数据库中的记录动态创建路由。通过单元测试,我可以更好地控制用于创建路由的确切数据,并且还可以检查被调用方法的签名。功能测试只会检查路由是否可以正确调用。
标签: php unit-testing phpunit silex