Unit testing 测试模型保存
我试着做一个非常基本的测试: 在以下模型上: 根据我的想法……是的,这个测试应该会成功,因为一个用户模型在没有必填字段的情况下保存,实际上并没有保存 但是这个模型以某种方式保存了数据,没有抛出任何错误,并且创建了一个完全空的用户Unit testing 测试模型保存,unit-testing,model,laravel-4,phpunit,Unit Testing,Model,Laravel 4,Phpunit,我试着做一个非常基本的测试: 在以下模型上: 根据我的想法……是的,这个测试应该会成功,因为一个用户模型在没有必填字段的情况下保存,实际上并没有保存 但是这个模型以某种方式保存了数据,没有抛出任何错误,并且创建了一个完全空的用户 关于我做错了什么有什么想法吗?$规则只是你编出来的——它不会像那样开箱即用。您需要根据规则实际验证模型,以便在保存时强制执行 将在没有Ardent的情况下执行您想要的操作。您在哪里/如何调用规则来“保存”用户以进行验证?我看不出你在验证任何东西。实际上我没有,因为我找不
关于我做错了什么有什么想法吗?$规则只是你编出来的——它不会像那样开箱即用。您需要根据规则实际验证模型,以便在保存时强制执行
将在没有Ardent的情况下执行您想要的操作。您在哪里/如何调用规则来“保存”用户以进行验证?我看不出你在验证任何东西。实际上我没有,因为我找不到任何关于这方面的文档,除了使用我不想使用的“Ardent”。因此,我没有自验证模型的起点,在我阅读的关于模型测试的教程中也没有提到它。那么,如何/为什么保存失败呢?规则没有被应用到任何地方-因此模型应该保存在您的测试中。$规则只是您编造的东西-它不会像那样开箱即用是的,这是我不清楚的$规则在Laravel的某个教程中有说明,我误以为这是一个系统范围的变量函数
public function testUsernameIsRequired(){
$user = new User;
$user->email = "phil@ipbrown.com";
// User should not save
$this->assertFalse($user->save());
}
class User extends Eloquent implements UserInterface, RemindableInterface {
use SoftDeletingTrait;
protected $fillable = array('email', 'username', 'password');
public static $rules = array(
'email' => 'required|min:3',
'username' => 'required|min:3',
'password' => 'required|min:3'
);
}