测试模型保存

时间:2014-06-06 11:15:34

标签: unit-testing model laravel-4 phpunit

我试图做一个非常基本的test

public function testUsernameIsRequired(){
  $user = new User;
  $user->email = "phil@ipbrown.com";

  // User should not save
  $this->assertFalse($user->save());
}

以下model

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

根据我的想法(...是的)这个测试应该会成功,因为User模型在没有required字段的情况下保存并不能实际保存。

但是这个模型以某种方式保存,不会抛出任何错误并创建一个完全空的用户。

关于我做错什么的任何想法?

1 个答案:

答案 0 :(得分:0)

$规则只是你编造的东西 - 它不会像那样开箱即用。您需要根据规则实际验证模型,以便在保存时强制执行。

如果没有Ardent,

Laravel 4 - Trouble overriding model's save method会做你想做的事。