我寫了一個類,想測試它是否正常工作。現在我認爲最好的方式是創建新的控制檯應用程序引用主項目,然後創建我的類的新實例並將其混淆。這種方法與其他方法不同,可以使用關鍵字(無類的全名)和調試來啓用智能感知。如何測試類是否在C#中正常工作?
任何人都知道如何以更方便的方式做到這一點,而無需製作新的控制檯應用程序?
我寫了一個類,想測試它是否正常工作。現在我認爲最好的方式是創建新的控制檯應用程序引用主項目,然後創建我的類的新實例並將其混淆。這種方法與其他方法不同,可以使用關鍵字(無類的全名)和調試來啓用智能感知。如何測試類是否在C#中正常工作?
任何人都知道如何以更方便的方式做到這一點,而無需製作新的控制檯應用程序?
使用控制檯應用程序來測試你的類是什麼,我會叫"poor man's unit test."
你在正確的軌道上在想要做這樣的測試,我(和其他大多數的SO)會建議使用a unit testing framework of some sort來幫助你。 (Mocking可能對你也很重要和有用。)
儘管如此。無論您使用什麼框架,或者如果使用控制檯應用程序來測試代碼,您都必須創建一個單獨的項目或某種單獨的重要代碼塊,以便能夠正確獨立地執行測試。這只是過程的一部分。這是一項投資,但不要讓額外的工作阻止你這樣做。它將在未來一段時間內節省很多時間和皮膚。甚至可能在下週。
此外,當您正在尋找單元測試確保在test-driven development還研究了(TDD)
用於TDD。直到我嘗試之後,我才確定它的價值。現在我無法想象一個更明智的工作方式。 – ZombieSheep
控制檯應用程序方法更適合您班級的測試工具,這很好。
但是你也可以使用單元測試框架來測試你的類。 Visual Studio內置了一個,或者你可以利用像NUnit這樣的東西。
此外,請嘗試在Visual Studio中的對象測試臺。它應該允許你創建一個新的實例,修改和查看屬性,並調用一些方法。不過,它通常只適用於非常簡單的應用程序。
單元測試是絕對要走的路。根據您正在運行的VS的版本,可能有內置的單元測試功能,或者您可能不得不使用諸如NUnit之類的附加工具。這兩個選項都很好,可以讓你充分測試你的課程。還要記住,從長遠來看,單元測試的全面套件將使得重構更容易。如果你重構和打破你的單元測試,你知道你已經在某個地方做了一個boo-boo。 :)
單元測試是向前來這裏的路上>這是一個很好的introductory article。
單元測試的基本概念是,您隔離並調用特定部分的代碼並聲明結果是預期的並且在合理範圍內。比如可以說你有一個簡單的方法返回一個浮點數的平方:
public float Square(float value)
{
return value * value;
}
一個合理的單元測試將是該方法返回正確的值,處理negetive值等:
Assert.AreEqual(25, Square(5));
Assert.AreEqual(100, Square(-10));
單元測試也看到您的代碼如何處理邊界情況的好方法:
Assert.Throws<OverflowException>(Square(float.MaxValue));
如果您使用Visual Studio 2008或更高版本,您將能夠測試基於M代碼STEST框架:
1.打開測試視圖窗口:測試/ Windows /測試視圖;
2.添加新的單元測試項目:右鍵單擊解決方案資源管理器中的Solution/Add/New Project/Test Project;
3.除創建的測試項目中的UnitTest.cs文件外,刪除所有文件;
4.Write下[TestMethod的]在方法您的單元測試屬性:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var ranges = new Ranges();
int sum = ranges.CountOccurrences(11);
Assert.AreEqual(128, sum);
}
}
5.Run加入P.1試驗
6.See測試結果從測試視圖窗口測試/窗/測試結果窗口
你應該谷歌「單元測試」。 – Jon