0
假設我有一個Config類型的對象,它或多或少地存儲了一堆鍵/值對。如果該值是一個數組,它會將該數組轉換爲一個新的Config實例,將該數組的值存儲在其中。當然,這可以在多個層面上無限期地繼續下去。PHPUnit - 模仿相同類型的嵌套對象
什麼是嘲笑這種類型的對象的最佳方法?我對PHPUnit相當陌生,所以很可能存在一個非常簡單的解決方案,但目前我不知道如何繼續。
根據我的經驗,到目前爲止,創建配置的模擬不會傳播到包含的配置對象,以及(在我的__set()魔術方法,它基本上是調用new self($array)
當它到達$data
嵌套數組。
這裏的對象應該如何工作的例子:
$data = array(
'one' => 'unus',
'two' => 'duo',
'three' => array(
'a' => 'alpha',
'b' => 'beta'
)
);
$config = new Config($data);
// I should be able to do this:
echo $config->three->a; // Outputs "alpha"
echo get_class($config->three); // Outputs "Config"
必須調用'$這個 - > getMock'每個模擬實例,但是'Config'直接使用'new'。無論如何,你需要設定預期。你能否提供一個你認爲需要模擬的範例測試?看起來你應該直接使用這些對象,因爲它們是簡單的數據持有者。 –
爲什麼你想嘲笑這個對象?它似乎只是一個數據對象。我會創建一個新的真正的配置對象,並傳遞一些假數據。 – Aine