如何获取 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 获取断路器状态的状态?

如何获取 QNetworkAccessManager 连接状态?

win32gui:如何获取窗口的状态栏文本?

如何在不和谐中获取我的麦克风状态

如何从状态中获取用户 ID

如何获取 RingCentral 软电话中显示的用户状态?