簡體   English   中英

使用 Visual Studio 2015 Intellitetest 進行參數化單元測試

[英]Parameterized Unit Tests with Visual Studio 2015 Intellitest

長期以來,我一直希望在 MSTest 中看到的一項功能是參數化單元測試 (PUT)。 我很高興聽到 Intellitetest 能夠創建上述測試 然而,我已經開始使用 Intellitetest,而且我認為我對 PUT 的定義與 Microsoft 的不同。

當我想到“PUT”時,我會想到NUnit 中的 TestCasesxUnit 中的 Theories 比我聰明得多的人似乎使用相同的術語

有人能告訴我 Intellitetest 是否真的能夠以與 NUnit 或 xUnit 相同的方式創建 PUT,或者這是一個重載術語的問題,在 Intellitetest 中意味着一件事,而對大多數其他測試框架則意味着另一件事? 謝謝。

截至 2016 年 6 月,此功能已添加到“ MSTest V2 ”中,可以通過添加MSTest.TestAdapterMSTest.TestFramework包通過 NuGet 安裝:

Install-Package MSTest.TestAdapter
Install-Package MSTest.TestFramework

請注意,這些與 Visual Studio 2017 等附帶的測試框架版本不同。要使用它們,您可能需要刪除對Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。

安裝這些后,您可以簡單地使用RowDataAttribute ,如以下示例所示:

[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(3, 3, 6)]
[DataRow(9, -4, 5)]
public void AdditionTest(int first, int second, int expected) {
  var sum = first+second;
  Assert.AreEqual<int>(expected, sum);
}

顯然,這里不限於int 您還可以使用stringfloatbool或任何其他原始值類型

如果您熟悉,這與之前可用於Windows 應用商店應用項目的實現相同。

Intellites 生成的參數化單元測試其他測試框架中常見的 PUT 不同。

在 MSTest/Intellitetest 世界中,PUT 用於智能生成其他單元測試

為了在 MSTest 中使用不同的數據集多次執行測試,我們仍然需要處理數據驅動的單元測試或使用MSTestHacks,How to RowTest with MSTest 中建議的那樣? .

參數化單元測試 (PUT) 是通過使用參數對單元測試的直接概括。 PUT 對一整套可能的輸入值而不是單個示例性輸入值做出關於代碼行為的聲明。 在這方面,它類似於您提供的鏈接。 不同之處在於生成數據以輸入參數化單元測試時 - IntelliTest 可以自動生成 PUT 的輸入數據。 我要求您參考以下內容: http : //blogs.msdn.com/b/visualstudioalm/archive/2015/07/05/intellitest-one-test-to-rule-them-all.aspx了解上下文。

暫無
暫無

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

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