測試第2篇: 隔離框架 NSubstitute V.S. Moq(C#)

    沒有測試的程式碼就是危樓!深度了解兩種主流「隔離框架」的妙用,攻略 NSubstitute 和 Moq 的差異和比較,讓程式碼可靠性更上一層樓!

    101
    5.0
    • Test Double 觀念,並了解 Dummy、Stub、Spy、Mock 和 Fake 的異同

    • 了解什麼是過度使用 Test Double 和不必要的 Code Coverage

    • 如何用 Mocking Framework 來動態生成 Test Double

    • 理解 Moq 語法和 NSubstitute 語法的差異與比較

    • 認識 Property 和 Void Method 的 Mocking

    US$94.02

    按一下 進入設定

    00:00
    00:00
    00:00

    優惠名額

    第 3 期早鳥優惠 : 預計 $ 3,000


    !!! 組合最划算 !!!

    Unit Test, Mocking Framework 扎實攻略:$ 6,799 (名額有限!)

    (連結請往下參考課程組合)


    越早預購越划算,價格將依照 課程製作完成度、購買人數、優惠名額...等條件,進行價格調整, 以實際公告與當下購買之金額為主。


    帶您學會快速學會「測試」

    # 關於「測試學程」


    這套學程主要的目的在於帶您暸解與操作單元測試,課程分為「MSTest  V.S. NUnit、NSubstitute V.S. Moq、Unit Test V.S. Integration TestFluent Assertions Part1 & Part2」五階段,循序漸進帶你融會貫通測試這項技術。不管是單元測試還是整合測試,都會帶您徹底理解!讓您能具備適應各種公司所需的測試能力,不必擔心少練一項重要技術。


    您目前位於 「測試學程第2篇 - 隔離框架 NSubstitute  V.S. Moq」 :


    • 測試學程第1篇 - 快速入門 MSTest V.S. NUnit :

    分別使用 MSTest 和 NUnit 兩種語法寫測試,並透過實際測試同一功能,介紹兩者的差異和比較,幫助融會貫通兩項技術。大部分的公司會使用其中一種做為主要測試語法,因此學完後能馬上運用!

    • 測試學程第2篇 - 隔離框架 NSubstitute V.S. Moq 

    介紹 Test Double(模擬物件)觀念,解釋 Dummy、Stub、Spy、Mock 和 Fake 的異同。學會使用 Mocking Framework(隔離框架)來動態生成 Test Double,並介紹 Moq 和 Nsubstitute 隔離框架語法的差異和比較。

    • 測試學程第3篇 - 熟能生巧 Unit Test V.S.Integration Test 

    我們將討論 Unit Test (單元測試)和 Integration Test (整合測試)的差異和比較。高的 Code Coverage (代碼覆蓋率)不等於 High quality test suite (高品質的自動化測試),但是太低的 Code Coverage (代碼覆蓋率) 肯定代表你寫的自動化測試的品質不夠。本篇要用最直白實用的範例,透過合理的 Code Coverage 觀念來抓住寫測試的感覺,讓您有效率的測試自己所撰寫的程式碼。

    • 測試學程第4~5篇 - 斷言神器 Fluent Assertions
    每個公司所用的 Unit Test Framework (單元測試框架)都不一樣,而每個 Unit Test Framework 所用的 Assertion 語法也不盡相同,難道我們每個都要學嗎?當然不必!Fluent Assertions 適用於大部分的 Unit Test Framework環境,包括 MSTest、xUnit、NUnit、Gallio、MBUnit、MSpec和NSpec。也適用於 .NET Core 、 .NET standard 和 .NET Framework 的環境,並且讓 failure message (失敗訊息) 和 Test Source code (測試原始碼) 更有可讀性。因此只要學習一次,就能一勞永逸,學後馬上對接工作!
    測試第4篇,專注於使用 Fluent Assertions 測試 Simple Type 和單一一個 Object。
    測試第5篇,專注於使用 Fluent Assertions 測試 Collection 和 Dictionary。



    為什麼需要「自動化測試」?

    # 省時、省力、「快狠準」的好幫手!


    很多人都知道「自動化測試」很重要,卻不知道從何寫起。發現 bug 出現在自己很久以前所寫的程式碼,光回憶,就要耗掉不少功夫,更別說後續 Fix Bug,有多令人頭痛阿。Developer 的時間就是金錢,「自動化測試」不但能大幅省時省力,而且速度快、品質有保障,還能降低未來維護成本!


    讓程式碼更完整-「單元測試、整合測試」

    # 一個專業的開發者, 絕對要懂測試!


    Unit Test (單元測試) 是以最小單位進行測試,Integration Test (整合測試) 是多個單元互相整合在一起做測試。如果你是專門寫測試的人才,你的必備技能包括 Unit Test、Integration Test、E2E Test。如果你是普通的 .NET Developer,那你需要為自己開發的程式碼寫上 Unit Test 和 Integration Test。若你未來想接觸敏捷開發,測試肯定是不可缺的一環


    為什麼我們需要 Test Double(模擬物件)?

    # 還沒上課就先告訴你!


    假設 ClassA 使用 ClassB,如果我們測試 ClassA , 會不小心同時測試一小部分的ClassB。這不符合 Unit Test(單元測試)的原則,所以我們需要製作 ClassB 的 Test Double(模擬物件),以供測試 ClassA 的時候使用。因此, 當測試 ClassA 的時候,會去使用 ClassB 的 Test Double(模擬物件),而不是真實的 ClassB。本門課一開始,我們將深入Test Double(模擬物件)的觀念, 其中包括 Dummy、Stub、Spy、Mock 和 Fake 的異同。再說明過度使用 Test Double 和不必要的 Code Coverage。


    從實用度最高的 Mocking Framework(隔離框架)開始深入

    # 最主流的隔離框架:Moq 與 NSubstitute 的差異與比較


    當我們有了 Test Double (模擬物件)的觀念,我們就學會如何「手寫」Test Double 的方式。若是我們不滿意「手寫」,想要「動態生成」以達到自動化測試,那我們就必須學會使用 Mocking Framework(隔離框架)來「動態生成」Test Double。

    目前流行的Mocking Framework(隔離框架)包括 Moq、NSubstitute、Rhino Mocks、FakeItEasy 和 NMock3,其中,Moq 和 NSubstitute 是比較流行的兩個 Mocking Framework。本課程將使用 Moq 和 NSubstitute 來時做同一個 Test Double,進而了解 Moq 和 NSubstitute 的差異和比較。



    購課學員,一致好評



    # 魔王關卡:


    1 號大關卡

    Tutorial 32-33
    介紹 Test Double(模擬物件)觀念,並解釋 Dummy、Stub、Spy、Mock 和 Fake 的異同。再說明過度使用 Test Double 和不必要的 Code Coverage。


    2 號大關卡

    Tutorial 34-41
    此為重點關卡「Mocking Framework 隔離框架入門」,分別使用 Moq 和 NSubstitute 兩種不同的語法去動態生成 Test Double(模擬物件),並測試同一個功能,做出兩者間的差異和比較。


    3 號大關卡

    Tutorial 42-47
    主要討論對 Integration Test (整合測試)來說很重要的 Compare 和 Equal,並深入每一個 Interface (含括 IEquatable<T>、IComparable<T>、 IComparable、IComparer、IComparer<T>、 IEqualityComparer<T>)和普通的 Assert 以及 Collection Assert 的關係。


    跟著我走,從原點開始扎實學習吧!

    您目前位於 「現代 .Net Framework 開發者之路」中的 測試學程第二篇 Mocking Framework, NSubstitute V.S. Moq :


    目錄
    1. TSQL扎實打底 - 講義目錄
    2. C# 深入解析 - 講義目錄
    3. LINQ to Object、SQL、XML - 講義目錄
    4. 測試學程第一篇 Unit Test, MS Test V.S. Nunit- 講義目錄
    5. 測試學程第二篇 Mocking Framework, NSubstitute V.S. Moq - 講義目錄
    6. 測試學程第四篇 Fluent Assertions Part 1- 講義目錄
    7. 測試學程第五篇 Fluent Assertions Part 2 - 講義目錄
    8. HTML5和CSS3基礎入門
    9. ASP.NET MVC 完全精通 - 講義目錄
    10. Entity Framework 學程第一篇 基礎入門 - 講義目錄
    11. Entity Framework 學程第二篇 扎實打底 - 講義目錄
    12. Entity Framework 學程第三篇 熟能生巧 - 講義目錄
    13. Entity Framework 學程第四篇 加速開發 - 講義目錄
    14. 測試學程第三篇 Unit Test V.S. Integration Test- 講義目錄
    15. Entity Framework 學程第五篇 技術整合 Part1 - 講義目錄
    16. Entity Framework 學程第六篇 技術整合 Part2 - 講義目錄
    17. RESTful ASP.NET Web API (規劃中)


    購課保障

    購課前,建議你先來看完整的 講義目錄,確定對你有用才購買。

    購課後,有任何問題,歡迎加入我的 ITHandyGuy售後服務粉絲團,來這邊討論任何對我的課程有疑問的問題,或是直接再討論區留言,我看到後會回覆。另外,更新或新增內容不額外收費喔!

    ITHandyGuy Page: https://goo.gl/hes3YW
    ITHandyGuy 交流社團 : https://goo.gl/uFHQvY


    關於講師 Kevin - 全方位 .NET 開發者


    技術移民到澳洲的.NET Developer,對於.NET領域的相關技術與各種開發方式、多種前後端框架與工具、版控系統,皆有深入的研究。畢業於澳洲多個大學,其中2所全校第1名畢業,最高學歷為碩士。現任HiSKIO線上課程特約講師,以及IT工具人學院創辦人。以一門銜接一門的扎實打底學程,幫助許多想成為.NET Developer的朋友們,繞過彎路,快速學習。


    • 2013 Certificate I in Hospitality (Provide Responsible Service of Alcohol) QHA QLD,酒精飲料服務責任執照, 昆士蘭餐飲協會。
    • 2011 Graduate Diploma in IT Management CQU QLD,IT管理研究生文憑, 中央昆士蘭大學,該屆全校第1名畢業。
    • 2010 Certificate IV in Property (Real Estate) Professional Real Estate Training QLD,專業昆士蘭房地產培訓4級證書。
    • 2010 Master of Information System Griffith QLD,信息系統碩士,格里菲斯大學。
    • 2008 Bachelor of IT Software Architecture QUT QLD,IT軟件架構學士,昆士蘭科技大學。
    • 2005 Diploma in Information Technology QIBT QLD,IT專業文憑證書,昆士蘭商業技術學院,該屆全校第1名畢業。

    章節目錄

    • 1-1
      FAQ-Handout,SampleCode(常見問題-講義、範例程式碼)
    • 1-2
      (P1)關於測試
    • 1-3
      (P2)UnitTest(單元測試)、IntegrationTest(整合測試)、EndToEndTest(端對端測試)
    • 1-4
      (P3-1)導讀Test(1to5)(.NetFramework)
    • 1-5
      (P3-2)導讀Test(1)(.NetFramework)
    • 1-6
      (P3-3)導讀Test(2)(.NetFramework)
    • 1-7
      (P3-4)導讀Test(3)(.NetFramework)
    • 1-8
      (P3-5)導讀Test(4)(.NetFramework)
    • 1-9
      (P3-6)導讀Test(5)(.NetFramework)

    試閱影片

    常見問答

    如果您購買的是募資課程,請在課程的【簡介】中查看開課時間,募資課程將於開課時間所述日期開放同學上課。

     

    若您購買的是一般課程(開放上課課程),則在購買完成後可以立即開始觀看。

     

    所有線上課程皆不受時間限制,享無限次永久觀看!

    猜你喜歡

    購買前問答

    | 尚無內容

    銷售方案