如何获取 assertResponseOk 的状态 - laravel 4.2 测试
Posted
技术标签:
【中文标题】如何获取 assertResponseOk 的状态 - laravel 4.2 测试【英文标题】:How to get status of assertResponseOk - laravel 4.2 testing 【发布时间】:2015-06-07 01:03:11 【问题描述】:这可能是一个非常基本的问题,但由于对 phpunit 和 laravel 非常陌生,我找不到任何答案。
我必须测试一个 api,首先我断言响应
$this->assertResponseOk();
然后我在玩响应,并断言平等
$response = $response->getOriginalContent();
$response = json_decode($response);
$result = ...
.
.
$this->assertEquals(true, $result);
我想要做的是将第二件事(处理响应)置于使第一个断言为真的条件下。
我可以吗?感谢您的帮助。
【问题讨论】:
【参考方案1】:您不需要任何条件 - PHPUnit 会为您处理。
如果前面的断言已经为真,它只会继续断言你的函数中的其余测试。
即
$this->assertResponseOk();
// The previous $this->assertResponseOk() MUST have been true to reach this point
$this->assertEquals(true, $result);
【讨论】:
那很好,但是如果我想打印成功或失败的自定义消息怎么办?以及是否有可能在多个测试的情况下显示哪个测试正在运行? 目前我正在像if($this->assertResponseOk($response)==null) echo 'XYZ_TestSuccessful';
那样做,它可以工作,但绝对不是正确的做法。 @换班交流
成功不用说。 PHPUnit 会告诉你它是否不成功。如果你所有的测试都通过了——PHPUnit 会告诉你。
我同意@Fahad,缺少像 phpUnit 那样添加自定义消息的可能性,我认为这是 Laravel 的 API 上的错误。以上是关于如何获取 assertResponseOk 的状态 - laravel 4.2 测试的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 netflix hystrix 获取断路器状态的状态?