聲明:本篇博客翻譯自:http://www.c-sharpcorner.com/article/unit-testing-with-ms-tests-in-c-sharp/瀏覽器
寫在翻譯以前:服務器
依然清晰的記得剛工做的第一個項目中,在完成一個功能模塊開發後,師傅讓我把代碼作一下單元測試。當時一臉「懵懂」。內心的疑惑油然而生,測試不該該是測試人員作的嗎?而後就寫了一些測試用例把功能簡單過了一遍。過了幾天後,師傅問我單元測試完成了嗎?我很自信的告訴師傅搞定了。師傅讓我把單元測試的代碼提交到服務器上,他想Review一下!我更加疑惑了,對師傅說,單元測試還要寫代碼呀?:(框架
不少初級開發工程師都會有這樣的困惑:誰應該來作單元測試。單元測試應該是由開發者來完成的。函數
經過一些代碼來測試一個方法/函數的行爲。單元測試
想象一下若是代碼修改須要很是頻繁,那麼花費在迴歸測試上的精力會很是多,一樣的,也會有很大的概率捕捉到功能回退(修改缺陷)的問題。測試
迴歸測試:翻譯
迴歸測試是確保當增長了新的修改後,老的功能依舊能夠正常使用。對象
單元測試:blog
TDD:開發
在寫產品代碼以前先寫單元測試代碼,而後使用產品代碼來填充/覆蓋測試代碼。最終使測試代碼都運行經過。
在C#中有2個測試框架
咱們使用AAA模式來編寫單元測試
右擊解決方案瀏覽器,選擇Unit Test Project並添加:
Employee類:
public class Employee { public string GetName(string firstName, string lastName) { return string.Concat(firstName, " ", lastName); } }
單元測試類:
[TestClass] public class EmpoyeeFunctionalTest { [TestMethod] public void GetNameTest() { // Arrange Employee employee = new Employee(); string firstName = "Jimmy"; string lastName = "Yang"; string expacted = "Jimmy Yang"; string actual = string.Empty; // Act actual = employee.GetName(firstName, lastName); // Assert Assert.AreEqual(expacted, actual); } }
但願上述內容可以幫助你對單元測試有一個概念性的認識。
感謝您的閱讀!翻譯的不到位之處還望指正。謝謝~