如何在控制器中为cakephp 3 Flash错误创建单元测试

时间:2019-03-03 01:20:28

标签: unit-testing cakephp-3.0 phpunit-testing

下面是我的cakephp 3应用程序的codecov内容。如何编写涵盖Flash错误的单元测试?

enter image description here

2 个答案:

答案 0 :(得分:0)

最好在响应正文上执行断言。毕竟,Flash消息不过是div中的文本。 Flash成功输出的示例:

<div class="message success" onclick="this.classList.add('collapse')">Entity saved</div>

对于任何成功或错误消息的可能断言如下:

$this->assertResponseContains('<div class="message success"');
$this->assertResponseContains('<div class="message error"');

或者您可以复制整个预期的Flash输出。

答案 1 :(得分:0)

从CakePHP 3.7开始,您可以使用for (let i = 0; i < oldMessage.cleanContent.length; i += 2000) { const cont = oldMessage.cleanContent.substring(i, Math.min(oldMessage.cleanContent.length, i + 2000)); embed.addField("Old Message", cont); } for (let i = 0; i < newMessage.cleanContent.length; i += 2000) { const cont = newMessage.cleanContent.substring(i, Math.min(newMessage.cleanContent.length, i + 2000)); embed.addField("New Message", cont); } 和其他一些帮助程序,其中有一些examples in the manual

对于您的情况,您的测试代码可能如下所示:

assertFlashMessage