我已添加 phpunit
作为 Composer 依赖项,并进行了 composer 更新
。
我编写了一个简单的测试,如下所示:
$user = new User;
$user->save();
我运行
vendor/bin/phpunit
或
vendor/bin/phpunit -c phpunit.xml
但我明白了
Undefined method User::save()
同时我可以看到 $user instanceof Eloquent
为 true。
更糟糕 - 如果我call('POST', '/posts')
,我也会遇到同样的问题 - 未定义的方法 Post::save()
我错过了什么吗?如何正确运行测试?
相关代码部分:
https://gist.github.com/anonymous/5849706
更新
我将仓库推送到 http://github.com/laravel-test-948320/bearded-bugfixes
实际上将 extends Eloquent 更改为 extends Illuminate\Database\Eloquent\Model 可以解决问题,但我仍然想了解发生了什么。
最佳答案
我重新创建了您的整个测试套件(我在阅读本文时正在设置我的测试套件)。 测试全部成功,所以我想知道您有哪些版本:
- php 版本
- composer.json 中的 laravel/framework 版本
- phpunit 版本
奇怪的是 a call() 也会导致未定义的 save()...
您是否安装了任何其他软件包或使用了命名空间?
关于laravel - 在 Laravel 4 中运行测试会产生 "Unknown method User::save()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110713/