我正在Cakecake应用程序上建立测试框架,并且遇到了一些问题。
我想测试用户模型,但是问题是用户模型使用了组件。是的,我知道在模型中使用组件是不好的做法。
这是一个简单的组件,可以从缓存或数据库中查找输入的翻译。
我不想为每个需要翻译的文本更新一个固定装置,所以我只想在组件中模拟翻译方法以返回其第一个参数。
我以前从未使用过phpunit(或任何php测试框架),所以请使用ELI5。
我正在遵循https://book.cakephp.org/2.0/en/development/testing.html文档中的CakePhp(2.x)测试教程。
UserTest
App::uses('User', 'Model');
class UserTest extends CakeTestCase {
public function setUp() {
parent::setUp();
$this->User = ClassRegistry::init('User');
}
}
用户
App::uses('Model', 'Model');
App::uses('TranslatorComponent', 'Controller/Component');
class User extends AppModel {
function __construct() {
parent::__construct();
$this->validate = array(
'firstname' => array(
'notempty' => array(
'message' => TranslatorComponent::Tr('First name is required')
...
TranslatorComponent
App::uses('Component', 'Controller');
App::uses('AppController', 'Controller');
class TranslatorComponent extends Component {
public static function Tr($token = null) {...}
public static function get_default_language() {...}
}