我一直在嘗試cakephp 3,因爲昨天。我有興趣使用單元測試。測試buildRules cakephp
我已成功測試我的添加動作。但是,如果存在一些驗證錯誤,我在跟蹤時遇到困難。我怎樣才能測試testDefaultValidation()和buildRules(),因爲它們的內容只有$this->markTestIncomplete('Not implemented yet.'); ??
謝謝。
我一直在嘗試cakephp 3,因爲昨天。我有興趣使用單元測試。測試buildRules cakephp
我已成功測試我的添加動作。但是,如果存在一些驗證錯誤,我在跟蹤時遇到困難。我怎樣才能測試testDefaultValidation()和buildRules(),因爲它們的內容只有$this->markTestIncomplete('Not implemented yet.'); ??
謝謝。
您可以使用表格中提供的方法checkRules
編寫單元測試,請參閱http://api.cakephp.org/3.3/source-class-Cake.Datasource.RulesAwareTrait.html#40-80。
舉個例子,如果你有這樣的要求,從articles
的id
存在以下將考驗你不得不設置正確buildRules
一個comments
表。
$table = TableRegistry::get('Comments');
// Where an row in the articles table with id 123 doesn't exist
$comment = $table->newEntity([
'article_id' => 123
]);
$result = $table->checkRules($comment);
$this->assertFalse($result);
$expected = [
'article_id' => [
'_existsIn' => 'This value does not exist'
]
];
$this->assertEquals($expected, $comment->errors());
如果您提供的驗證不是空的,那麼當您測試添加時,不應該保存空值,等等。 –