2011-05-21 161 views
2

我在C++/CLI中使用.NET中的單元測試框架來測試非託管C++代碼。如何在Visual Studio單元測試框架中初始化測試類資源?

我想舉個例子System::Random在整個測試方法中生成隨機值。

我需要把它作爲一個成員變量在我的測試類嗎?

如果是,我可以在哪裏放置初始化代碼,導致產生的ClassInitialize()方法由於某種原因是靜態的,並且它只能訪問TestContext,我讀取它僅用於使用來自某些外部源的測試數據。

回答

2

如果您需要它們可用於所有測試,您可以將靜態屬性添加到您的測試類並在ClassInitialize()方法中初始化它們。如果你想讓他們每次測試初始化​​,那麼使用TestInitialize()方法會更好。

您確定要在單元測試中使用隨機值嗎?通常你會想要使用已知的值(好值,壞值,邊緣情況等),以便測試是可預測的。在知道預期行爲(結果)的情況下,使用具有各種值的多個測試比使用隨機值更爲典型。

+0

正確的靜態成員,我沒有教過這個。在這種情況下,更好的方法是,在'ClassInitialize'中初始化靜態成員,或者在常規構造函數中初始化非靜態成員。 關於第二部分,是的,我同意。在編寫單元測試時,我基本上都是初學者,基本上我測試的方法應該可以與任何整數一起工作,這就是爲什麼我教會使用隨機的方法,因爲它沒有關係。 – sekmet64 2011-05-21 13:13:03

+0

@ sekme64 - 我會使用ClassInitialize或TestInitialize來使用構造函數;這取決於在每次測試之前是否需要重新設置什麼。 – tvanfosson 2011-05-21 16:15:18

相關問題