謝謝你們觀看-AY的 VS2017推廣系列
html
Live Unit Testing工具
AY當前VS的版本---- 15.7.1post
目前從15.3版本開始,就開始支持.net core的,網上不少資料都是舊的
單元測試
建立空解決方案UtilityLibraries測試
添加一個 .NET Standard庫
ui
添加類StringLibrarythis
using System; namespace UtilityLibraries { public static class StringLibrary { public static bool StartsWithUpper(this string s) { if (String.IsNullOrWhiteSpace(s)) return false; return Char.IsUpper(s[0]); } public static bool StartsWithLower(this string s) { if (String.IsNullOrWhiteSpace(s)) return false; return Char.IsLower(s[0]); } public static bool HasEmbeddedSpaces(this string s) { if (String.IsNullOrWhiteSpace(s)) return false; foreach (var ch in s.Trim()) { if (ch == ' ') return true; } return false; } } }
是否大寫開頭,是否小寫開頭,是否包含空格
編碼
從新生成解決方案。spa
添加 core的 測試項目 StringLibraryTests.net
點擊肯定
而後 右鍵依賴項,添加引用
修改默認測試代碼:
using Microsoft.VisualStudio.TestTools.UnitTesting; using UtilityLibraries; using System; namespace StringLibraryTests { [TestClass] public class UnitTest1 { [TestMethod] public void TestStartsWithUpper() { // Tests that we expect to return true. string[] words = { "AaronYang", "Zebra", "ABC", "Αθήνα", "Москва" }; foreach (var word in words) { bool result = word.StartsWithUpper(); Assert.IsTrue(result, $"Expected for '{word}': true; Actual: {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, $"Expected for '{word}': false; Actual: {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, $"Expected for '{(word == null ? "<null>" : word)}': " + $"false; Actual: {result}"); } } } }
因爲單元測試代碼包含一些非 ASCII 字符,所以 Visual Studio 顯示如下對話框來警告咱們,若是以其默認的 ASCII 格式保存文件,某些字符將會丟失。 選擇「以其餘編碼保存」按鈕。
Unicode (UTF-8 無簽名) - 代碼頁 6500
單擊 菜單欄
單擊啓動
測試資源管理器,列出結果,綠色√號,表明經過,測試結果和 代碼覆蓋率測試,覆蓋到的代碼,在對應的類中,走過的路徑都是√號標記,沒有覆蓋的代碼,用藍色的 - 號標記
單擊方法前面的 √號,還會列出 覆蓋過這個 方法的 測試方法名。
單擊return Char.IsUpper(s[0]); 前面的√ 同理,這裏只有2個測試方法 覆蓋到這裏
增長代碼繼續測試
[TestMethod] public void TestStartsWithLower() { // Tests that we expect to return true. string[] words = { "alphabet", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство" }; foreach (var word in words) { bool result = word.StartsWithLower(); Assert.IsTrue(result, $"Expected for '{word}': true; Actual: {result}"); } } [TestMethod] public void TestDoesNotStartWithLower() { // Tests that we expect to return false. string[] words = { "Alphabet", "Zebra", "ABC", "Αθήνα", "Москва", "1234", ".", ";", " "}; foreach (var word in words) { bool result = word.StartsWithLower(); Assert.IsFalse(result, $"Expected for '{word}': false; Actual: {result}"); } }
而後Ctrl+S保存,發現自動運行測試了
切換到 測試的類,已經 覆蓋過這些代碼, 覆蓋過,就是說明,代碼被使用了,有意義的代碼。
目前爲止的代碼都是成功的,添加一個失敗的。
切換到被測試的類,鼠標移到X上,顯示,代碼被1 覆蓋過了,說面測試是走到這裏的。
單擊方法名,那行的X,而後單擊,測試方法,而後單擊,最後1個 調試所選項
表示 第一個短語 致使報錯
除此以外,咱們還有一些幫助工具,能夠幫咱們調試
打開之後
從自動窗口,發現phrase 變量值 "Name\tDescription" 該字符串沒有包含空格,因此返回false,
它認爲嵌入的空格是U+0020。 可是,Unicode 標準包含許多其餘空格字符。 這代表庫代碼對空格字符進行了錯誤的測試。
修改代碼: if (Char.IsWhiteSpace(ch))
OK了,到目前爲止,剛剛入門 實時自動測試知識
====================www.ayjs.net 楊洋 wpfui.com ayui ay aaronyang=======請不要轉載謝謝了。=========
推薦您閱讀更多有關於「vs2017,」的文章