2010-08-04 63 views
3

我設置單元測試的方式是用戶可以運行可執行文件並選擇要使用的數據集。此信息存儲在app.config中,但是當我嘗試訪問app.config時使用Gallio Icarus運行單元測試時,它不起作用。在MBunit測試中使用app.config

編輯: 我得到的字段綁定到一個應用程序屬性,但是當我呼籲Properties.Settings.Default.Save();它似乎並沒有做任何事情。 app.exe.config不會更改,更改不會持續。

+0

它是如何工作的?我問,因爲我使用Gallio和MbUnit,並且我可以包含並訪問一個沒有問題的app.config文件。 – 2010-08-04 12:29:26

+0

我使用Properties.Settings.Default。當我在單元測試中使用它時,這些值是空的。 – Reflux 2010-08-04 13:29:59

+0

我不熟悉 - 你能告訴我們你正在使用的代碼嗎?如果你需要訪問'appSettings',你可以使用'AppSettingsReader'對象。 – 2010-08-04 13:38:32

回答

2

app.config是與程序讀取的MyProgramme.exe.config文件相對應的文件啓動。這可以通過System.Configuration命名空間和程序集中的Configuration對象訪問。

Properties.Settings.Default對應於文件user.config,當你調用Properties.Settings.Default.Save()

所以包括app.config文件中的測試不會影響你的Properties.Settings.Default程序將產生。

欲瞭解更多信息,請參閱Using Settings

+0

我試過用user.config,但是當我運行我的單元測試時,它不會從我運行我的應用程序時創建的user.config中讀取。有沒有辦法讓它讀取user.config或我應該使用app.config? – Reflux 2010-08-05 12:33:20

3

模擬您如何閱讀應用程序配置。

在您的應用程序中編寫一個接口&從app.config文件獲取數據的類。 在你的測試中,在一個虛擬物體上實現接口,每次都會傳回已知的輸出。

您正在測試的類需要接受一個參數(在ctor或其他),該參數是實現接口的對象。

在您的真實代碼中,這將是從app.config中讀取的真實對象。

在測試中,它將是虛擬對象。

相關問題