2010-01-19 79 views
1

VSTS 2008(Visual Studio Team System)帶有內置單元測試功能。我們可以添加一個測試項目來執行智能設備項目的單元測試。問題出在我的智能設備項目不使用Framework 3.5而是使用Framework 2.0時。我嚴格地不要在設備中安裝Framework 3.5。使用框架2.0的智能設備的單元測試

Microsoft.VisualStudio.SmartDevice.UnitTestFramework.dll

這就要求設備或者模擬器框架3.5:

但這種限制是因爲它是使用下面的參考妨礙我在運行單元測試應用程序它會拋出一個異常。我需要知道是否有任何方法可以在Framework 2.0的限制範圍內對我的設備應用程序執行UnitTest。

回答

0

您可以將單元測試項目設置爲.Net 3.5,將您的智能設備項目設置爲.Net 2.0。

這樣做有什麼問題嗎?

+0

VSTS不允許您設置目標框架。其次,它已經如此。 – Sumeet 2010-01-19 05:25:47

2

我做了很多Compact Framework開發,我會建議使用智能設備單元測試的替代方案,這也將解決您的問題。

重構您的代碼,以便您的UI僅僅是一個View。 (也就是說,除了調用其他類以外,什麼都不做)。然後將你的非UI類放在單元測試下。 (只是正常的單元測試。)

當您第一次創建正常的單元測試項目時,Visual Studio會給你一個警告,但在此之後它是平穩的航行。

有3個原因,這樣做的:

  1. 速度。以這種方式運行單元測試需要很少的時間。
  2. 簡單。正如您所看到的,獲得智能設備單元測試和工作需要一點時間
  3. 兼容性。通過這樣做,您可以訪問Rhino Mocks等工具。
  4. 您可以設置單元測試項目的目標是.NET 2.0

現在的缺點:

  1. 在NETCF環境你是不是「真的」測試代碼。

雖然缺點很明顯,但單元測試並不能取代「真正的」測試,因爲它能夠快速捕捉任何由於該缺點而錯過的問題。 (真正的編譯應該能夠解決大多數問題。)

+0

代碼很大..已經被許多人使用。我們不能重構。有沒有其他方法? – Sumeet 2010-01-21 06:17:44

+1

我不知道任何其他方式。如果它有幫助,這個重構對代碼來說不僅僅是單元測試更好。它有助於將UI與業務邏輯分開。 – Vaccano 2010-01-21 19:11:28

0

在創建測試項目時,您必須設置錯誤或遵循錯誤的過程。

我剛剛使用Studio 2008對此進行了重新驗證,如果您正在測試的程序集版本爲2.0,那麼當您創建單元測試項目時,它也將以版本2.0爲目標。您需要必須使用上下文菜單中的「創建單元測試」嚮導來生成單元Tetst項目。

+0

適用於win或web等常規項目。我的目標是2.0,但對於一個設備的單元測試框架來說,只有VS2008纔會出現,其他投擲如下 http://www.simonrhart.com/2007/12/microsoftvisualstudiosmartdevicetesthos.html – Sumeet 2010-01-21 06:01:51