本篇經驗將和大師介紹利用 Visual Studio 2017 測試 .NET Core 類庫的方式,但愿對大師的工作和進修有所幫忙!
在“解決方案資本辦理器”中,打開“ClassLibraryProjects”解決方案節點的上下文菜單,再依次選擇“添加” > “新項目”。
在“添加新項目”對話框中,選擇“Visual C#”節點。
然后,依次選擇“.NET Core”節點和“單位測試項目(.NET Core)”項目模板。
在“名稱”文本框中,輸入項目名稱“StringLibraryTest”。
選擇“確定”,建立單位測試項目,如下圖所示:
此時,Visual Studio 會建立項目,并在代碼窗口中打開 UnitTest1.cs 文件,如下圖所示:
單位測試模板建立的源代碼負責執行以下操作:
導入 Microsoft.VisualStudio.TestTools.UnitTesting 定名空間,此中包含用于單位測試的類型。
標的目的 UnitTest1 類應用 [TestClass] 特征。 測試類中標識表記標幟有 [TestMethod] 屬性的所有測試方式城市在單位測試運行時主動執行。
它應用 [TestMethod] 屬性,將 TestMethod1 界說為在單位測試運行時主動執行的測試方式。
在“解決方案資本辦理器”中,右鍵單擊“StringLibraryTest”項目標“依靠項”節點,并從上下文菜單中選擇“添加引用”,如下圖所示:
在“引用辦理器”對話框中,睜開“項目”節點,并選中“StringLibrary”旁邊的框。
添加對 StringLibrary 法式集的引用后,編譯器可以查找 StringLibrary 方式。 選擇“確定”按鈕。
這會添加對類庫項目 StringLibrary 的引用,如下圖所示:
建立測試方式,如下代碼所示:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UtilityLibraries;
namespace StringLibraryTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestStartsWithUpper()
{
// Tests that we expect to return true.
string[] words = { "Alphabet", "Zebra", "ABC", "Αθ?να", "Москва" };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsTrue(result,
String.Format("Expected for '{0}': true; Actual: {1}",
word, result));
}
}
[TestMethod]
public void TestDoesNotStartWithUpper()
{
// Tests that we expect to return false.
string[] words = { "alphabet", "zebra", "abc", "αυτοκινητοβιομηχαν?α", "государство",
"1234", ".", ";", " " };
foreach (var word in words)
{
bool result = word.StartsWithUpper();
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word, result));
}
}
[TestMethod]
public void DirectCallWithNullOrEmpty()
{
// Tests that we expect to return false.
string[] words = { string.Empty, null };
foreach (var word in words)
{
bool result = StringLibrary.StartsWithUpper(word);
Assert.IsFalse(result,
String.Format("Expected for '{0}': false; Actual: {1}",
word == null ? "<null>" : word, result));
}
}
}
}
請注重,TestStartsWithUpper 方式中測試的年夜寫字符包羅希臘文年夜寫字母 alpha (U+0391) 和西里爾文年夜寫字母 EM (U+041C),TestDoesNotStartWithUpper 方式中測試的小寫字符包羅希臘文小寫字母 alpha (U+03B1) 和西里爾文小寫字母 Ghe (U+0433)。
在菜單欄上,選擇“文件” > “將 UnitTest1.cs 另存為”。
在“文件另存為”對話框中,選擇“保留”按鈕旁邊的箭頭,然后選擇“保留時利用編碼”,如下圖所示:
在“確認另存為”對話框中,選擇“是”按鈕,保留文件。
在“高級保留選項”對話框的“編碼”下拉列表中,選擇“Unicode (UTF-8 帶簽名) - 代碼頁 65001”,然后選擇“確定”,如下圖所示:
若是無法將源代碼保留為 UTF8 編碼文件,Visual Studio 可能會將其另存為 ASCII 文件。 在這種環境下,運行時將無法精確解碼 ASCII 規模以外的 UTF8 字符,且測試成果也會禁絕確。
在菜單欄上,選擇“測試” > “運行” > “所有測試”。
此時,“測試資本辦理器”窗口打開并顯示測試已當作功運行。
“經由過程的測試”部門列出了三個測試,“摘要”部門陳述了測試運行成果,如下圖所示:
經由過程點竄 TestDoesNotStartWithUpper 方式中的 words 數組來包含字符串“Error”。 因為 Visual Studio 將在生當作運行測試的解決方案時主動保留打開的文件,是以無需手動保留。
tring[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχαν?α", "государство", "1234", ".", ";", " " };
從菜單欄中選擇“測試” > “運行” > “所有測試”,運行測試。 “測試資本辦理器”窗口指示有兩個測試當作功,還有一個掉敗,如下圖所示:
在“未經由過程的測試”部門中,選擇未經由過程的測試 TestDoesNotStartWith。 “
測試資本辦理器”窗口顯示斷言生當作的動靜:“Assert.IsFalse 掉敗。
‘Error’ 應返回 false; 現實返回 True”。
因為此次掉敗,數組中“Error”之后的所有字符串都未進行測試,如下圖所示:
刪除添加的代碼 ("Error",),然后從頭運行測試。
測試將經由過程。
在 Visual Studio 東西欄中,將生當作設置裝備擺設從“調試”更改為“刊行”,如下圖所示:
“解決方案資本辦理器”中,右鍵單擊“StringLibrary”項目,從上下文菜單中選擇“生當作”,從頭編譯庫,如下圖所示:
從菜單欄中選擇“測試” > “運行” > “所有測試”,運行單位測試,測試經由過程。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!