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

时间:2016-08-02 07:34:28

标签: phpunit laravel-5.2

我有以下代码。 登录用户和验证工作,返回true。

问题是seePageIs,它返回一个错误。但在发布后,责任必须转到公司列表页面。因此,如果我将 - > 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');

}

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的代码以及您的问题,但也许就是这一行:

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

我刚刚更改了行seePageIs()以在最后添加创建。也许这就是问题?

试试吧。

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

编辑#2 你好Bas;根据您的意见以及我认为您要做的事情: 如果在创建公司后,您想检查它,那么您可能需要这样做:

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

只需进入公司页面即可验证是否是正确的页面。