2012-11-15 22 views
0

我正在爲CodeIgniter編寫一個庫,在編寫測試時,我需要檢查將庫或CodeIgniter的配置更改爲我提供的各種選項時會發生什麼情況。可以從單元測試中更改應用程序配置嗎?

最簡單的出路似乎是使用Config class即時獲取和設置配置變量,它確實解決了問題。我只是不喜歡那個解決方案的外觀。

什麼是其他語言/框架中的等價物,可能面臨的潛在問題以及如何完全避免這些問題?

+1

如果您的測試通過或失敗取決於測試代碼無法控制的因素,根據定義,這不是一個真正的*單位*測試... – cHao

+0

確實......也許我應該寫當某些測試被設置爲如此等等時,特定測試會被跳過。 –

+1

理想情況下,你會重做的東西,以便可以改變的東西,可以隨意切換爲已知行爲的測試對象。除了通過將測試代碼與應用程序的其他部分隔離開來使測試更加可靠之外,它還會大大改善代碼的模塊化(或導致?)。 – cHao

回答

0

我不知道你的測試,但我知道,當我測試(這一直是我工作過的大多數地方的政策,以及那些有他們的東西在一起),我試圖確保我所有的輸入是受到控制和驗證的,因爲我確切地知道發生了什麼以及應該出現什麼。

因此,對於您的特定情況,如果可能的話,我會生成一個「測試」配置文件並使用它,以便您確切知道發生了什麼以及應該出現什麼。

編輯:爲了更具體地回答你的問題,在我看來,我會說它是不行的,在飛行中改變配置值。

爲什麼?因爲如果什麼東西壞了,你不抓住它,突然你的配置值改變,並部署到生產和... BOOM崩潰。顯然是更糟的情況下,但仍然

相關問題