課程時間

🔧【Tools工具安裝】5:07:24

🎬【Preview導讀】2:49:20

🎬【TestEpisode3(第3篇)-UnitTest(單元測試)、IntegrationTest(整合測試)】24:15:47

課程章節

請按「Preview」預覽章節。

  關於本課程
Available in days
days after you enroll
  討論UnitOfWork、Repository觀念
Available in days
days after you enroll
  討論PoCoGenerator
Available in days
days after you enroll
  討論DbContext、EfModel
Available in days
days after you enroll
  討論EfModelRepository、EfModelUnitOfWork
Available in days
days after you enroll
  討論Fake、Comparer
Available in days
days after you enroll
  用NUnit做UnitTest(單元測試)
Available in days
days after you enroll
  用NUnit做IntegrationTest(整合測試)
Available in days
days after you enroll
  用MSTest做UnitTest(單元測試)
Available in days
days after you enroll
  用MSTest做IntegrationTest(整合測試)
Available in days
days after you enroll
  討論MockingFramework(隔離框架)-Moq、NSubstitute
Available in days
days after you enroll
  課程評價
Available in days
days after you enroll
請選付款方案

🔴如果您在HiSKIO上購買了課程,則無需在Teachable重新購買相同課程。

請注意,Teachable Pay的發票無法提供給台灣公司報稅,如果需要台灣發票報稅,請去HiSKIO購買。

Teachable可能會產大約5%的「海外交易費」(詳情請諮詢您的發卡機構),為了學生權益,請使用「10%off」折價券

「Bundle」(組合包)更划算!

#「.Net Framework」相關系列「Bundle」(組合包)

  • 🚀「包含5堂課」B-2-TSQL、C#、Linq、MVC、API同步攻略(Click here)
  • 🚀「包含6堂課」B-3-EF(.NetFramework)學程第1-6篇(Click here)
  • 🚀「包含5堂課」B-4-單元整合測試學程第1-5篇(Click here)
  • 🚀「包含16堂課」B-5-扎實打底.NetFramework學程-TSQL、C#、LINQ、MVC、API、EF第1-6篇、測試第1-5篇(Click here)
  • 🚀「IT工具人學院全部課程」B-1-1-All Course Membership全能學生證(Click here)

.Net Framework Serious(學程)

注意: 因為此系列已經沒有新東西可以教了,所以這個學程不會再加入新內容了!

#請來這邊看「.Net Framework Serious(學程)」簡介(Click here)

  • 🚀2-1-TSQL(.NetFramework)扎實打底(Click here)
  • 🚀2-2-C#(.NetFramework)深入解析(Click here)
  • 🚀2-3-Linq(.NetFramework)完全攻略(Click here)
  • 🚀2-4-Asp.NetMVC(.NetFramework)完全精通(Click here)
  • 2-5A-EF(1to3)(.NetFramework)
  • 🚀2-5A-1-EntityFrameworkEpisode1(第1篇)-CodeFirst、DBFirst(Click here)
  • 🚀2-5A-2-EntityFrameworkEpisode2(第2篇)-FluentAPI、DataAnnotation(Click here)
  • 🚀2-5A-3-EntityFrameworkEpisode3(第3篇)-UnitOfWorkWithRepository(Click here)
  • 2-6B-Test(1to5)(.NetFramework)
  • 🚀2-6B-1-TestEpisode1(第1篇)-TestFramework(測試框架)-MSTest、NUnit(Click here)
  • 🚀2-6B-2-TestEpisode2(第2篇)-MockingFramework(隔離框架)-NSubstitute、Moq(Click here)
  • 🚀2-6B-3-TestEpisode3(第3篇)-UnitTest(單元測試)、IntegrationTest(整合測試)(Click here)(👈😁你現在在此!)
  • 🚀2-6B-4-TestEpisode4(第4篇)-FluentAssertionsPart1(Click here)
  • 🚀2-6B-5-TestEpisode5(第5篇)-FluentAssertionsPart2(Click here)
  • 2-7B-EF(4to6)(.NetFramework)PocoGenerator
  • 🚀2-7B-4-EntityFrameworkEpisode4(第4篇)-PocoGenerator(Click here)
  • 🚀2-7B-5-EntityFrameworkEpisode5(第5篇)-Test、UnitOfWorkWithRepositoryPart1(Click here)
  • 🚀2-7B-6-EntityFrameworkEpisode6(第6篇)-Test、UnitOfWorkWithRepositoryPart2(Click here)
  • 🚀2-8-Asp.NetMvcApi(.NetFramework)(VS2017)扎實打底(Click here)

本課簡介

Hi My name is Kevin. 我是一名移民到澳大利亞的軟體工程師,個人專注於各種技術和使用者界面的開發與研究。

TestEpisode3(第3篇)-UnitTest(單元測試)、IntegrationTest(整合測試)】是一門銜接一門的「.Net Framework學程」中其中一個課程。

此篇會(T50ToT51)討論DbContext、EfModel。接著(T52ToT56)討論EfModelRepository、EfModelUnitOfWork。然後(57ToT58)討論Fake、Comparer。重頭戲來了,(59ToT61)用NUnit做UnitTest(單元測試),(T62ToT63)用NUnit做IntegrationTest(整合測試)。不能偏食,所以MSTest也要討論一下。(T64ToT66)用MSTest做UnitTest(單元測試),(T67ToT68)用MSTest做IntegrationTest(整合測試)。最後,(T69)討論MockingFramework(隔離框架)-Moq、NSubstitute

Course Highlight(本課魔王)

😈第一魔王,(T50ToT51)討論DbContext、EfModel

😈第二魔王,(T52ToT56)討論EfModelRepository、EfModelUnitOfWork

😈第三魔王,(T57ToT58)討論Fake、Comparer

😈第四魔王,(T59ToT61)用NUnit做UnitTest(單元測試)

😈第五魔王,(T62ToT63)用NUnit做IntegrationTest(整合測試)

😈第六魔王,(T64ToT66)用MSTest做UnitTest(單元測試)

😈第七魔王,(T67ToT68)用MSTest做IntegrationTest(整合測試)

😈第八魔王,(T69)討論MockingFramework(隔離框架)-Moq、NSubstitute

想朝軟體工程師之路前進嗎?受夠了像是文字天書,艱深難懂的工具文件嗎?對自己的底子沒信心嗎?若你想扎實打底,本課程將讓你收穫滿滿!歡迎加入「IT工具人學院,帶你學到會」,一起練功吧!!顆顆。

工具安裝

🔧Microsoft SQL Server

🔧Visual Studio

🔧NUnit Test Adapter

課前技能

✍HTML 5 CSS3

✍Javascript

✍TSQL

✍C#

✍Linq

✍Asp . Net MVC (. Net Framework)

單元簡介

導讀

  • (P1)關於測試
  • (P2)UnitTest(單元測試)、IntegrationTest(整合測試)、EndToEndTest(端對端測試)
  • (P3)導讀Test(1to5)(.NetFramework)
  • (P3-1)導讀Test(1to5)(.NetFramework)
  • (P3-2)導讀Test(1)(.NetFramework)
  • (P3-3)導讀Test(2)(.NetFramework)
  • (P3-4)導讀Test(3)(.NetFramework)
  • (P3-5)導讀Test(4)(.NetFramework)
  • (P3-6)導讀Test(5)(.NetFramework)

討論UnitOfWork、Repository觀念

  • (T48)討論UnitOfWork、Repository觀念
  • (T48-1)複習和安裝EfPocoGenerator,建立Datable
  • (T48-2)在Database,建立Table
  • (T48-3)在Database,InsertData
  • (T48-4)在Database,建立StoredProcedure、DynamicTSQL
  • (T48-5)在Database,建立StoredProcedure
  • (T48-6)在Database,重新InsertData
  • (T48-7)在Database,建立TestDatabase(測試用資料庫)
  • (T48-8)圖解要怎麼實作UnitOfWork、Repository的觀念

討論PoCoGenerator

  • (T49)用PoCoGenerator來加速開發EF
  • (T49-1)在Database,建立Table
  • (T49-2)在假Solution-OnlineGameTwo使用PocoGenerator自動生成EF程式碼
  • (T49-3)在真Solution-OnlineGame建立DataInterface、DataRepository、測試專案
  • (T49-4)討論Solution-OnlineGame的ConnectionString

討論DbContext、EfModel

  • (T50)使用PoCoGenerator所產生的EF程式碼去連接資料庫Table
  • (T50-1)對應資料庫Table到DataAccess層的EfModelClass
  • (T50-2)對應資料庫TableRelationship到DataAccess層的EfModelConfigurationClass
  • (T50-3)討論DbContext
  • (T50-4)用Migration指令更新資料庫Table
  • (T50-5)在UiConsoleApp(使用者介面)建立StaticMethod去用Ef存取資料庫Table
  • (T50-6)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫Table。執行Find(搜尋資料)
  • (T50-7)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫Table。執行Add(新增資料)
  • (T50-8)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫Table。執行AddMultiple(新增多筆資料)
  • (T50-9)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫Table。執行DeleteMultiple(刪除多筆資料)
  • (T50-10)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫Table。執行Delete(刪除資料)
  • (T51)使用PoCoGenerator所產生的EF程式碼去連接資料庫StoredProcedure
  • (T51-1)用PocoGenerator把資料庫的StoredProcedure連接到在假Solution-OnlineGameTwo的DataAccess層的EF程式碼
  • (T51-2)在真Solution-OnlineGame把資料庫的StoredProcedure連接到在假Solution-OnlineGameTwo的DataAccess層的EF程式碼
  • (T51-3)在UiConsoleApp(使用者介面)建立StaticMethod去用Ef存取資料庫StoredProcedure
  • (T51-4)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫StoredProcedure。執行SpSearchGamerAndDetail(搜尋多對多資料)
  • (T51-5)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫StoredProcedure。執行SpInsertGamerAndDetail(新增多對多資料)
  • (T51-6)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫StoredProcedure。執行SpUpdateGamerAndDetail(更新多對多資料)
  • (T51-7)在UiConsoleApp(使用者介面)呼叫StaticMethod去用Ef存取資料庫StoredProcedure。執行SpDeleteGamerAndDetail(刪除多對多資料)
  • (T51-8)討論Migration指令不能建立資料庫StoredProcedure
  • (T51-9)討論ConnectionString

討論EfModelRepository、EfModelUnitOfWork

  • (T52)討論EfModelRepository層的Validator(防呆驗證)
  • (T52-1)討論EfModelRepository層的GamerDetailRepository、GamerDetailValidator
  • (T52-2)討論EfModelRepository層的GamerRepository、GamerValidator
  • (T53)討論EfModelRepository層的GenericRepository
  • (T53-1)討論EfModelRepository層的GenericRepositoryInterface,IRepository
  • (T53-2)討論EfModelRepository層的OnePkRepositoryInterface,IOnePkWithAllOthersRepository
  • (T53-3)討論EfModelRepository層的GetRepositoryInterface,IGetWithAllOthersRepository
  • (T53-4)討論EfModelRepository層的GetAllRepositoryInterface,IGetAllWithAllOthersRepository
  • (T53-5)討論EfModelRepository層的AddRepositoryInterface,IAddRepository
  • (T53-6)討論EfModelRepository層的DeleteRepositoryInterface,IDeleteRepository
  • (T53-7)討論EfModelRepository層的UpdateRepositoryInterface,InterfaceIUpdateRepository
  • (T53-8)討論EfModelRepository層的GenericRepository,Repository
  • (T53-9)討論EfModelRepository層的AddRepository
  • (T53-10)討論EfModelRepository層的OnePkRepository
  • (T54)討論EfModelRepository層的GamerRepository、GamerDetailRepository
  • (T54-1)討論EfModelRepository層的GamerDetailRepository
  • (T54-2)討論EfModelRepository層的GamerRepository
  • (T54-3)討論EfModelRepository層的UnitOfWorkInterface,IUnitOfWork
  • (T54-4)討論EfModelRepository層的UnitOfWork
  • (T55)在UiConsoleApp(使用者介面)用Ef存取資料庫Table。討論EfModelRepository層的OnePkRepository
  • (T55-1)在UiConsoleApp(使用者介面)用Ef存取資料庫Table。討論EfModelRepository層的OnePkRepository執行Add(新增資料)
  • (T55-2)在UiConsoleApp(使用者介面)用Ef存取資料庫Table。討論EfModelRepository層的OnePkRepository執行AddMultiple(新增多筆資料)
  • (T55-3)在UiConsoleApp(使用者介面)用Ef存取資料庫Table。討論EfModelRepository層的OnePkRepository執行Update(更新資料)
  • (T56)在UiConsoleApp(使用者介面)用Ef存取資料庫StoredProcedure。
  • (T56-1)在UiConsoleApp(使用者介面)用Ef存取資料庫StoredProcedure。執行SpSearchGamerAndDetail(搜尋多對多資料)
  • (T56-2)在UiConsoleApp(使用者介面)用Ef存取資料庫StoredProcedure。執行SpInsertGamerAndDetail(新增多對多資料)
  • (T56-3)在UiConsoleApp(使用者介面)用Ef存取資料庫StoredProcedure。執行SpUpdateGamerAndDetail(更新多對多資料)
  • (T56-4)在UiConsoleApp(使用者介面)用Ef存取資料庫StoredProcedure。執行SpDeleteGamerAndDetail(刪除多對多資料)

討論Fake、Comparer

  • (T57)討論EfModelRepository層的FakeDbContext
  • (T58)討論EfModelRepository層的Equal、Compare
  • (T58-1)討論EfModelRepository層的GamerDetailComparer
  • (T58-2)討論EfModelRepository層的GamerComparer
  • (T58-3)討論EfModelRepository層的SpSearchGamerAndDetailReturnModelComparer

用NUnit做UnitTest(單元測試)

  • (59)用NUnit測試EfModelRepository層的Equal、Compare
  • (T59-1)用NUnit測試EfModelRepository層的GamerDetailComparer
  • (T59-2)用NUnit測試EfModelRepository層的GamerComparer
  • (T59-3)用NUnit測試EfModelRepository層的SpSearchGamerAndDetailReturnModelComparer
  • (T60)用NUnit測試EfModelRepository層的Validator(防呆驗證)
  • (T60-1)用NUnit測試EfModelRepository層的GamerDetailValidator
  • (T60-2)用NUnit測試EfModelRepository層的GamerValidator
  • (T61)NUnit執行UnitTest(單元測試)EfModelRepository層的GamerDetailRepository、GamerRepository
  • (T61-1)NUnit單元測試EfModelRepository層的GamerDetailRepository的TestInitialize、CleanUp
  • (T61-2)NUnit單元測試EfModelRepository層的GamerDetailRepository的Repository的GetAll(讀取全部資料)和Find(搜尋資料)
  • (T61-3)NUnit單元測試EfModelRepository層的GamerDetailRepository的Repository的SingleOrDefault(搜尋並取第一筆資料)
  • (T61-4)NUnit單元測試EfModelRepository層的GamerDetailRepository的OnePkRepository的Get(用Id取資料)
  • (T61-5)NUnit單元測試EfModelRepository層的GamerDetailRepository的EntityRepository的Get(取得資料和關聯資料)
  • (T61-6)NUnit單元測試EfModelRepository層的GamerDetailRepository的EntityRepository的Add(新增資料)和Delete(刪除資料)
  • (T61-7)NUnit單元測試EfModelRepository層的GamerDetailRepository的EntityRepository的AddMultiple和DeleteMultiple
  • (T61-8)NUnit單元測試EfModelRepository層的GamerDetailRepository的EntityRepository的Update(更新資料)
  • (T61-9)複習用NUnit單元測試觀念
  • (T61-10)NUnit單元測試EfModelRepository層的GamerRepository的TestInitialize、CleanUp
  • (T61-11)NUnit單元測試EfModelRepository層的GamerRepository的Repository的GetAll(讀取全部資料)和Find(搜尋資料)
  • (T61-12)NUnit單元測試EfModelRepository層的GamerRepository的Repository的SingleOrDefault(搜尋並取第一筆資料)
  • (T61-13)NUnit單元測試EfModelRepository層的GamerRepository的OnePkRepository的Get(用Id取資料)
  • (T61-14)NUnit單元測試EfModelRepository層的GamerRepository的EntityRepository的Get(取得資料和關聯資料)
  • (T61-15)NUnit單元測試EfModelRepository層的GamerRepository的EntityRepository的Add(新增資料)和Delete(刪除資料)
  • (T61-16)NUnit單元測試EfModelRepository層的GamerRepository的EntityRepository的AddMultiple和DeleteMultiple
  • (T61-17)NUnit單元測試EfModelRepository層的GamerRepository的EntityRepository的Update(更新資料)

用NUnit做IntegrationTest(整合測試)

  • (T62)用NUnit整合測試EfModelRepository層的GamerDetailRepository、GamerRepository
  • (T62-1)NUnit整合測試EfModelRepository層的GamerDetailRepository的TestInitialize、CleanUp
  • (T62-2)NUnit整合測試EfModelRepository層的GamerDetailRepository的Repository的GetAll、Find、SingleOrDefault
  • (T62-3)NUnit整合測試EfModelRepository層的GamerDetailRepository的OnePkRepository的Get(用Id取資料)
  • (T62-4)NUnit整合測試EfModelRepository層的GamerDetailRepository的EntityRepository的Get(取得資料和關聯資料)
  • (T62-5)NUnit整合測試EfModelRepository層的GamerDetailRepository的Add、AddMultiple、Delete、DeleteMultiple
  • (T62-6)NUnit整合測試EfModelRepository層的GamerDetailRepository的EntityRepository的Update(更新資料)
  • (T62-7)NUnit整合測試EfModelRepository層的GamerRepository的TestInitialize、CleanUp
  • (T62-8)NUnit整合測試EfModelRepository層的GamerRepository的Repository的GetAll、Find、SingleOrDefault
  • (T62-9)NUnit整合測試EfModelRepository層的GamerRepository的OnePkRepository的Get(用Id取資料)
  • (T62-10)NUnit整合測試EfModelRepository層的GamerRepository的EntityRepository的Get(取得資料和關聯資料)
  • (T62-11)NUnit整合測試EfModelRepository層的GamerRepository的Add、AddMultiple、Delete、DeleteMultiple
  • (T62-12)NUnit整合測試EfModelRepository層的GamerRepository的EntityRepository的Update(更新資料)
  • (T62-13)不建議NUnit的TestOrder
  • (T63)用NUnit執行IntegrationTest(整合測試)Ef存取資料庫StoredProcedure
  • (T63-1)用NUnit執行IntegrationTest(整合測試)Ef存取資料庫StoredProcedure的TestInitialize、CleanUp
  • (T63-2)用NUnit執行IntegrationTest(整合測試)Ef存取資料庫StoredProcedure的SpSearchGamerAndDetailReturnModel
  • (T63-3)用NUnit整合測試SpInsertGamerAndDetail, SpUpdateGamerAndDetail, SpDeleteGamerAndDetail
  • (T63-4)用NUnit執行IntegrationTest(整合測試)Ef存取資料庫StoredProcedure的SpDeleteGamerAndDetail

用MSTest做UnitTest(單元測試)

  • (T64)用MSTest測試EfModelRepository層的Equal、Compare
  • (T64-1)用MSTest測試EfModelRepository層的GamerDetailComparer
  • (T64-2)用MSTest測試EfModelRepository層的GamerComparer
  • (T64-3)用MSTest測試EfModelRepository層的SpSearchGamerAndDetailReturnModelComparer
  • (T65)用MSTest測試EfModelRepository層的Validator(防呆驗證)
  • (T65-1)用MSTest測試EfModelRepository層的GamerDetailValidator
  • (T65-2)用MSTest測試EfModelRepository層的GamerValidator
  • (T66)MSTest執行UnitTest(單元測試)EfModelRepository層的GamerDetailRepository、GamerRepository
  • (T66-1)MSTest單元測試EfModelRepository層的GamerDetailRepository
  • (T66-2)MSTest單元測試EfModelRepository層的GamerRepository

用MSTest做IntegrationTest(整合測試)

  • (T67)用MSTest整合測試EfModelRepository層的GamerDetailRepository、GamerRepository
  • (T67-1)MSTest整合測試EfModelRepository層的GamerDetailRepository
  • (T67-2)MSTest整合測試EfModelRepository層的GamerRepository
  • (T68)用MSTest執行IntegrationTest(整合測試)Ef存取資料庫StoredProcedure

討論MockingFramework(隔離框架)-Moq、NSubstitute

  • (T69)討論MockingFramework(隔離框架)Moq、NSubstitute
  • (T69-1)在EfModelRepository層建立Gamer、GamerDetail的Interface和LuckyReward邏輯
  • (T69-2)用MockingFramework(隔離框架)Moq隔離Gamer、GamerDetail,用NUnit單元測試LuckyReward
  • (T69-3)用MockingFramework(隔離框架)Moq隔離Gamer、GamerDetail,用MSTest單元測試LuckyReward
  • (T69-4)用MockingFramework(隔離框架)NSubstitute隔離Gamer、GamerDetail,用NUnit單元測試LuckyReward
  • (T69-5)用MockingFramework(隔離框架)NSubstitute隔離Gamer、GamerDetail,用MSTest單元測試LuckyReward
  • (T69-6)結論MockingFramework(隔離框架)Moq、NSubstitute