Laravel 5 Behat测试在模型中的功能失败



我遇到了在 Laravel 5.4 上设置的 behat/mink 的问题,它无法从模型中的函数返回值,我正在寻找一些关于如何解决这个问题的建议。

下面是一个非常基本的 laravel 安装示例:

例如。我有一个名为User的模型.php里面有以下函数

public static function someFunction(){
return 'A Random Text String';
}

在我的家庭控制器中,我为 index(( 定义了以下内容

例如

/**
* Show the application dashboard.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$user = Auth::user();
return view('home',compact('user'));
}

在相应的刀片文件中,我有以下内容

{{$user}}   
{{$user->someFunction()}}

我有一个功能设置如下:

Scenario: Home Page           # features/hometest.feature:6
Given I am on the homepage  # FeatureContext::iAmOnHomepage()
Then I should see "Laravel" # FeatureContext::assertPageContainsText()
Scenario: Check we can login
When I go to "/register"
And I fill in "Name" with "Dave"
And I fill in "E-Mail Address" with "Dave@dave.com"
And I fill in "Password" with "password"
And I fill in "Confirm Password" with "password"
And I press "Register"
And I should see "You are logged in!"
Scenario: Check we can access the homepage as Dave
Given I am logged in as Dave
When I go to "/home"
And I should see "A Random Text String"

它对应于我的功能上下文中的一个函数.php

/**
* @Given /^(?:|I )am logged in as Dave$/
*/
public function iAmLoggedInAsDave()
{
$this->visit('/login');
$this->fillField('E-Mail Address', 'dave@dave.com');
$this->fillField('Password', 'password');
$this->pressButton('Login');
$this->printCurrentUrl();
}

如果我通过浏览器查看以上内容,我可以看到

{"id":1,"name":"Dave","email":"Dave@dave.com","created_at":"2017-06-30 16:10:39","updated_at":"2017-06-30 16:10:39"}
A Random Text String

这将对应于我的测试通过。

但是当我在我的/home/vagrant/Code/client/client.app目录中运行behat时 ../vendor

/behat/behat/bin/behat我失败了

Scenario: Check we can login       # features/hometest.feature:19
Given I am logged in as Dave     # FeatureContext::iAmLoggedInAsDave()
│ http://localhost/home
When I go to "/home"             # FeatureContext::visit()
And I should see "A Random Text String" # FeatureContext::assertPageContainsText()
The text "A Random Text String" was not found anywhere in the text of the current page. (BehatMinkExceptionResponseTextException)

我的日志中出现以下错误。

下一个错误异常:调用未定义的方法 Illuminate\Database\Query\Builder::someFunction(( (查看:/home/vagrant/Code/client/client.app/resources/views/home.blade.php( in/home/vagrant/Code/client/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2450

我目前的开发平台是用宅基地使用流浪建立的。

我在 behat.yml 中有以下内容

default:
extensions:
LaracastsBehat:
env_path: .env.behat
BehatMinkExtension:
default_session: laravel
laravel: ~

除了显而易见的存在之外,我在这里看不到任何错误assertPageContainsText()失败,期望您在页面上显示的文本为"某些功能",您真的看到这个了吗?

从用户模型中的方法来看,这不会在/home 页上显示为文本。

最新更新