首页 > 解决方案 > 断言响应对象包含特定成功消息的最简单方法是什么?

问题描述

redirect我得到了一个成功返回 a 的函数,message如下所示:

public function update(Request $request)
{
    // ...

    return redirect()->route('my.route')
        ->with('success', 'All objects have been updated.');
}

我写了一个特性测试来测试这个函数的功能。

public function test_user_can_update()
{
    $response = $this->put(route('my.route'), [
        'value' => 15
    ]);

    $response->assertStatus(302);
    $response->assertSessionHasNoErrors();

    $this->assertEquals('All objects have been updated.', $response->getSession()->get('success'));
}

有没有更简单的方法来访问会话并检查成功消息?

标签: phplaraveltestingphpunit

解决方案


我发现了两种更简单的方法来检查成功消息:

$response->assertSessionHas('success', 'Änderungen gespeichert.');

// or

$this->assertEquals(session('success'), 'Änderungen gespeichert.');

推荐阅读