【发布时间】:2014-11-21 16:16:45
【问题描述】:
我正在尝试测试一个需要“密码”和“电子邮件”属性的简单 Laravel 模型。我的测试如下……
public function testEmailIsRequired() {
$user = new User;
$user->password = 'derp';
// should not save
$this->assertFalse($user->save());
}
我没有正确地同意“这行不通”和成功的测试,而是……
1) UserTest::testEmailIsRequired
Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation:
19 NOT NULL constraint failed: users.email
(SQL: insert into "users" ("password", "updated_at", "created_at")
values (derp, 2014-09-26 15:27:07, 2014-09-26 15:27:07))
[...]
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
恐怕我在这里完全是新手。在我看来,PHPUnit 应该抑制数据库驱动程序自己的错误报告,并且只接受“false”……帮助?
【问题讨论】:
-
User::save()的代码是什么样的?如果需要电子邮件,您的代码不应该退出而不是尝试保存到数据库吗?
标签: unit-testing laravel-4 phpunit