2012-10-02 25 views
1

使用数据源下面的情况:
我想对于使用数据源我的模型创建测试用例。数据源连接到一个API。如何在灯具

我的尝试:
我试图$useDbConfig VAR灯具的设置为数据源,像这样。

class ProjectFixture extends CakeTestFixture { 
    public $useDbConfig = 'project'; 
    public $useTable = false; 
} 

然后在我的模型试验这里就是我所做的:

App::uses('Project', 'Model'); 

class ProjectTest extends CakeTestCase { 
    public $fixtures = array('app.project'); 

    public function setUp() { 
     parent::setUp(); 
     $this->Project = ClassRegistry::init('Project'); 
    } 
... 

然而,当我运行测试,我得到这个错误信息:

Invalid datasource project for object Project 
Error: An Internal Error Has Occurred. 

Stack Trace 
CORE/Cake/TestSuite/Fixture/CakeFixtureManager.php line 144 → CakeTestFixture->__construct() 
CORE/Cake/TestSuite/Fixture/CakeFixtureManager.php line 78 → CakeFixtureManager->_loadFixtures(array) 
CORE/Cake/TestSuite/CakeTestRunner.php line 52 → CakeFixtureManager->fixturize(ProjectTest) 
CORE/Cake/TestSuite/CakeTestSuiteCommand.php line 111 → CakeTestRunner->doRun(PHPUnit_Framework_TestSuite, array) 
CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php line 242 → CakeTestSuiteCommand->run(array) 
CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php line 99 → CakeTestSuiteDispatcher->_runTestCase() 
CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php line 116 → CakeTestSuiteDispatcher->dispatch() 
APP/webroot/test.php line 92 → CakeTestSuiteDispatcher::run() 

有没有人尝试这样做之前?我一直在寻找通过网络,但似乎无法找到任何类似的资源。

回答

1

多一点修修补补,我能得到这个工作。它不使用Fixtures,但它完成了工作。这是我做了模型试验文件:

App::uses('Project', 'Model'); 

class ProjectTest extends CakeTestCase { 
    public function setUp() { 
     parent::setUp(); 
     $this->Project = ClassRegistry::init('Project'); 
     $this->Project->useDbConfig = 'project'; 
    } 
... 

我只是被迫使用我想要的数据源中的设置和模式。

我现在能在此设置运行我的测试。不过,如果一个人通过固定装置成功地做到了这一点,你的帮助将非常感激。

0

我把它工作的唯一途径是通过使用一个被称为连接:

例如(实际模型使用的连接的名称)

TEST_,在我的情况下,模型ActivePermission使用连接登录,所以,对于夹具我用:

public $useDbConfig = 'test_login'; 

另外,如果你没有明确的一套$useDbConfig蛋糕默认是使用测试连接。