在CakePHP 2.1中,我試圖從我的模型測試用例中調用正確的「to」電子郵件來調用CakeEmail :: to()方法(在本例中:cat @ gmail.com)。如何測試CakeEmail是從模型中調用的
我想下面的測試通過,但我得到:
Expectation failed for method name is equal to <string:to> when invoked 1 time(s).
Method was expected to be called 1 times, actually called 0 times.
這裏是示範代碼和測試用例:
<?php
// Model/Job.php
App::uses('AppModel', 'Model');
App::uses('CakeEmail', 'Network/Email');
class Job extends AppModel {
public function emailCat() {
$CakeEmail = new CakeEmail();
$CakeEmail->to('[email protected]');
$CakeEmail->subject('hello!');
$CakeEmail->emailFormat('text');
$CakeEmail->config('default');
$CakeEmail->send('hi');
}
}
// Test/Model/JobTest.php
class JobTestCase extends CakeTestCase {
public function setUp() {
parent::setUp();
$this->Job = ClassRegistry::init('Job');
}
public function testEmailCat() {
// I want to assert CakeEmail::to() is called with correct email
$CakeEmail = $this->getMock('CakeEmail' , array('to'));
$CakeEmail->expects($this->once())
->method('to')
->with($this->equalTo('[email protected]'));
$result = $this->Job->emailCat();
}
}
這是 – robmcvey 2012-07-17 14:14:06
你殺MVC,發送郵件*在模型 – 2012-07-17 17:18:22
隨意此評論的拓展模型 - 其中的規則書上面說的電子郵件應該從控制器發送? – robmcvey 2012-07-18 12:26:26