Laravel 5.2 PHPunit 表单提交创建新记录

Laravel 5.2 PHPunit form submit create new record

我有以下代码。 登录用户和验证有效,returns true.

问题是看页面,returns出错了。但在发布回复后必须转到公司列表页面。因此,如果我将 ->seePageIs('admin/company') 更改为 ->seePageIs('admin/company/create') 它会起作用。

怎么了?

错误:

Failed asserting that two strings are equal.
Expected :'http://localhost/admin/company'
Actual   :'http://localhost/admin/company/create'

测试:

public function testExample()
{
    $this->be(User::find(4));
    $rules = array(
        'companyname' => 'required',
        'email' => 'required|email',
    );

    $data = [
        'companyname' => 'aa',
        'email' => 'aaaa@aa.nl']
    ;

    $v = $this->app['validator']->make( $data, $rules);

    $this->visit('admin/company/create')
        ->press('Create')
        ->assertTrue($v->passes())
        ->seePageIs('admin/company');

}

我不确定我是否理解你的代码和你的问题,但也许是这一行:

$this->visit('admin/company/create')
     ->press('Create')
     ->assertTrue($v->passes())
     ->seePageIs('admin/company/create');

我只是将 seePageIs() 行更改为在末尾添加 create。也许这就是问题所在?

试试吧。

如果没有,您能否展示 assertEquals(...) 的代码...谢谢!

编辑#2 嗨,巴斯;根据您的评论和我认为您正在尝试做的事情: 如果创建公司后,你想检查它,那么你可能需要这样做:

$this->visit('admin/company')
     ->seePageIs('admin/company');

它只是转到公司页面并验证页面是否正确。