gpt4 book ai didi

unit-testing - 如何在模型测试用例中创建模拟

转载 作者:行者123 更新时间:2023-12-04 18:47:55 24 4
gpt4 key购买 nike

也许我做错了。

我想测试模型(抗体)的 beforeSave 方法。此方法的一部分调用关联模型(物种)上的方法。我想模拟 Species 模型,但找不到方法。

是否有可能或者我正在做一些违反 MVC 模式的事情,从而试图做一些我不应该做的事情?

class Antibody extends AppModel {
public function beforeSave() {

// some processing ...

// retreive species_id based on the input
$this->data['Antibody']['species_id']
= isset($this->data['Species']['name'])
? $this->Species->getIdByName($this->data['Species']['name'])
: null;

return true;
}
}

最佳答案

假设你的 Species 模型是由蛋糕由于关系创建的,你可以简单地做这样的事情:

public function setUp()
{
parent::setUp();

$this->Antibody = ClassRegistry::init('Antibody');
$this->Antibody->Species = $this->getMock('Species');

// now you can set your expectations here
$this->Antibody->Species->expects($this->any())
->method('getIdByName')
->will($this->returnValue(/*your value here*/));
}

public function testBeforeFilter()
{
// or here
$this->Antibody->Species->expects($this->once())
->method('getIdByName')
->will($this->returnValue(/*your value here*/));
}

关于unit-testing - 如何在模型测试用例中创建模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com