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'
  );
}