我正在尝试在 Laravel 中为我的中间件编写单元测试。有谁知道教程,或者有这方面的例子吗?
我已经写了很多代码,但是一定有更好的方法来测试handle方法。
使用 Laravel 5.2,我通过向中间件传递带有输入的请求和带有断言的闭包来对中间件进行单元测试。
所以我有一个中间件class GetCommandFromSlack
解析第一个单词text
我的帖子中的字段(来自 Slack 斜杠命令的文本)到一个名为的新字段command
,然后修改text
场不再有第一个词。它有一种具有以下签名的方法:public function handle(\Illuminate\Http\Request $request, Closure $next)
.
我的测试用例如下所示:
use App\Http\Middleware\GetCommandFromSlack;
use Illuminate\Http\Request;
class CommandsFromSlackTest extends TestCase
{
public function testShouldKnowLiftCommand()
{
$request = new Illuminate\Http\Request();
$request->replace([
'text' => 'lift foo bar baz',
]);
$mw = new \App\Http\Middleware\GetCommandFromSlack;
$mw->handle($request,function($r) use ($after){
$this->assertEquals('lift', $r->input('command'));
$this->assertEquals('foo bar baz',$r->input('text'));
});
}
}
我希望这有帮助!如果我得到更复杂的中间件工作,我会尝试更新它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)