開箱即用,CakePHP 1.x有一個default
和test
數據源。運行單元測試時,它使用測試數據庫,並且在每次測試之前,它可以修復代碼中的數據,或從默認數據庫導入數據。如何在CakePHP中爲特定模型設置測試數據源?
在應用程序中我建立我有一對夫婦的情況下,它會在某些型號的指定有用的賽程比其他test
數據庫:
- 數據源是一個Web服務和返回的數據不能輕易地與測試數據庫一起復制,因此存在較大的只讀表,並且在每次測試之前重新創建所有這些數據的速度非常緩慢(而且不必要)。
我已經看過CakeTestFixture
但我看不到一個很好的方法來做到這一點呢。也許每個模型真的想要一個useDbConfig
和useTestConfig
屬性?
我可以做這樣的事情破解我的辦法解決這在某些情況下:
function startTest() {
$this->Flock =& ClassRegistry::init('Flock');
$this->Flock->Sheep->useDbConfig = 'readonly_db';
$this->Flock->Dog->useDbConfig = 'soap';
}
但是,這將只涵蓋具體依賴於一個測試用例,並跨越了一組測試這樣做將是一個維護惡夢。
有沒有人遇到類似的情況,你有解決方案嗎?
發現這一點: http://cakephp.lighthouseapp.com/projects/42648/tickets/207-in-test-suite-models-are-forced-to-use-specific-datasource 標有「工程爲我「,雖然沒有給出解決方法。看起來沒有Cake的機制可以做到這一點,希望可以在某種程度上以非惡作劇的方式對此進行編程。 – contrebis 2011-03-03 11:28:25