Symfonyob娱乐下载 4.3的新功能:更好地测试断言
2019年4月3日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
在Syob娱乐下载mfony应用程序中,创建功能测试是简单的感谢工具提供的WebTestCase
类和PHPUnit的断言。但是,对于常见的用例(例如测试响应是否成功或它重定向到某个URL)assert___ ()
方法太基础,需要编写太多代码。
许多Symfonob娱乐下载y开发人员为测试创建了自己的实用工具类来解决这个问题。这就是为什么在Symfonyob娱乐下载 4.3中,我们决定在一个新的版本中添加最常见的ob娱乐下载
默认包括在WebTestCase
,所以您只需要将应用程序升级到Symfony 4.3就可以开始使用它们。ob娱乐下载
检查响应是否成功的例子:
1 2 3 4
/ /之前$这->assertSame (200,$客户端->getResponse ()->getStatusCode ());/ /后$这->assertResponseIsSuccessful ();
检查响应是否重定向到某个URL的示例:
1 2 3 4 5
/ /之前$这->assertSame (301,$客户端->getResponse ()->getStatusCode ());$这->assertSame (“https://example.com”,$客户端->getResponse ()->头->get (“位置”));/ /后$这->assertResponseRedirects (“https://example.com”,301);
检查元素是否包含文本的例子:
1 2 3 4
/ /之前$这->assertContains (“Hello World”,$履带->过滤器(“标题”)->text ());/ /后$这->assertSelectorTextContains (“标题”,“Hello World”);
新的断言将使您的测试更具可读性,并将提高您的工作效率。以下是可用断言的完整列表:
assertClientCookieValueEquals ()
assertClientHasCookie ()
assertClientNotHasCookie ()
assertClientRawCookieValueEquals ()
assertHttpCodeEquals ()
assertInputValueEquals ()
assertInputValueNotEquals ()
assertPageTitleContains ()
assertPageTitleEquals ()
assertRequestAttributeValueEquals ()
assertResponseCookieValueEquals ()
assertResponseCookieValueNotEquals ()
assertResponseHasCookie ()
assertResponseHasHeader ()
assertResponseHeaderEquals ()
assertResponseHeaderNotEquals ()
assertResponseIsSuccessful ()
assertResponseNotHasCookie ()
assertResponseNotHasHeader ()
assertResponseRedirects ()
assertRouteEquals ()
assertSelectorContainsText ()
assertSelectorExists ()
assertSelectorNotContainsText ()
assertSelectorNotExists ()
发表在#生活在边缘
评论
@Greg:
' $this->assertResponseIsSuccessful() '将不会失败说“失败断言假是真”。它会失败,说“失败,断言响应是成功的”。
一个成功的响应只是一个状态码在2xx范围内的响应。
如果你想检查一个特定的状态码,使用' $this->assertResponseStatusCodeSame(200); '
' $this->assertResponseIsSuccessful() '将不会失败说“失败断言假是真”。它会失败,说“失败,断言响应是成功的”。
一个成功的响应只是一个状态码在2xx范围内的响应。
如果你想检查一个特定的状态码,使用' $this->assertResponseStatusCodeSame(200); '
托马斯Votruba
2019年4月4日说在11:05
非常好:)这将是有趣的实现在Rector
穆罕默德·本·优素福
2019年4月4日说在上19:15
好,谢谢!
托马斯Votruba
2019年4月6日说在23:48
看起来Symfony代码中缺少列表中的一些方法,例如assertHttpCodeEquals()。ob娱乐下载
是在#29990,而不是在#30813取代了它。
是在#29990,而不是在#30813取代了它。
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Grégoire Pineau is a certified Symfony engineer and a certified Twig designer.
Get certified! Online exams available in all countries.
Register Now我真的不喜欢$this->assertResponseIsSuccessful(),因为当它失败时,它说“失败断言false是true”。恕我直言,这并不像“断言403失败是200”那样明确。