簡體   English   中英

如何在C#中測試類是否正常工作?

[英]How to test if class works properly in C#?

我已經寫了一堂課,想測試一下是否運行良好。 目前,我認為最好的方法是創建引用主項目的新控制台應用程序,然后創建類的新實例並將其弄亂。 這種方法與其他方法不同,它使用關鍵字(沒有類的全名)和調試來啟用IntelliSense。

任何人都知道如何以更方便的方式做到這一點,而無需制作新的控制台應用程序?

使用控制台應用程序測試您的班級就是所謂的“窮人單元測試”。

想要進行此類測試的方向正確,我(以及SO上的其他大多數人)會建議使用某種類型的單元測試框架來幫助您。 模擬對您可能也很重要和有用。)

這是東西。 無論使用哪種框架,或者是否使用控制台應用程序來測試代碼,都必須創建一個單獨的項目或一個單獨的重要代碼塊,以便能夠正確且獨立地執行測試。 那只是過程的一部分。 這是一項投資,但不要讓多余的工作阻止您這樣做。 它將在未來的一小段時間內節省大量時間和皮膚。 甚至下周。

另外,在查找單元測試時,請確保還研究測試驅動的開發 (TDD)。

單元測試絕對是必經之路。 根據所運行的VS版本,可能內置了單元測試功能,或者您可能必須使用其他工具,例如NUnit。 這兩個選項都不錯,可以讓您全面測試您的課程。

還請記住,從長遠來看,一套完整的單元測試套件也將使重構變得更加容易。 如果您重構並破壞了單元測試,您就會知道自己在某處做了噓聲。 :)

單元測試是這里的前進方向>這是一篇很好的介紹性文章

單元測試的基本概念是,您隔離並調用代碼的特定部分,並斷言結果是預期的並且在合理范圍內。 例如,假設您有一個簡單的方法可返回浮點數的平方:

public float Square(float value)
{
    return value * value;
}

合理的單元測試將是該方法返回正確的值,處理有爭議的值等:

Assert.AreEqual(25, Square(5));
Assert.AreEqual(100, Square(-10));

單元測試也是查看代碼如何處理邊緣情況的好方法:

Assert.Throws<OverflowException>(Square(float.MaxValue));

如果您使用的是VS 2010,請查看Pex和Moles ...

http://research.microsoft.com/en-us/projects/pex/

Console App方法更像是您班上的測試工具,這很好。

但是您也可以使用單元測試框架來測試您的類。 Visual Studio內置了一個,也可以使用NUnit之類的東西。

另外,嘗試在Visual Studio中使用對象測試平台。 它應該允許您創建一個新實例,修改和查看屬性以及調用某些方法。 不過,它通常僅適用於非常簡單的應用程序。

如果您使用Visual Studio 2008或更高版本,則可以使用MSTest框架測試代碼:

1.打開“測試視圖”窗口:“測試/ Windows /測試視圖”;

2.添加新的單元測試項目:在解決方案資源管理器/添加/新建項目/測試項目中右鍵單擊解決方案;

3.刪除創建的測試項目中除UnitTest.cs文件以外的所有文件;

4.在[TestMethod]屬性下的方法中編寫單元測試:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        var ranges = new Ranges();
        int sum = ranges.CountOccurrences(11);
        Assert.AreEqual(128, sum);
    }
}

5,從第1頁中添加的``測試視圖''窗口中運行測試

6,在``測試/ Windows /測試結果''窗口中查看測試結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM