• 課程時長

    29 小時 7 分

  • 課程級別

    初級

  • 授課語言

    中文

這堂課你將會學到

  • 透過Code Coverage觀念, 攻略"Unit Test"和"Integration Test"的差異和比較, 讓你抓住寫測試的感覺
  • 複習Entity Framework基礎觀念
  • 複習Unit of work搭配Repository結構
  • 理解 Unit Test(單元測試) 和 Integration Test(整合測試) 的差異和比較
  • 理解MSTest和NUnit 這兩個流行的 Test Framework (測試框架)
  • 分析 Moq 和 NSubstitute 這兩個流行的 Mocking Framework (隔離框架)來做Test Double(虛擬物件)的時機

章節目錄

  • 1

    第 1 章 IT工具人學院

    • 單元 1 - 課程使用方法

    • 單元 2 - ITHandyGuy粉絲團

  • 2

    第 2 章 關於本課程

    • 單元 1 - 本課程講義目錄

    • 單元 2 - 本課程導讀

    • 單元 3 - 本課程導讀

  • 3

    第 3 章 關於Test學程 (.NET Framework的子學程)

    • 單元 1 - TestSeries Preview01 - 關於測試

    • 單元 2 - TestSeries Preview01 - 關於測試

    • 單元 3 - TestSeries Preview02 - 關於單元測試 V.S. 整合測試 V.S. 端對端測試

    • 單元 4 - TestSeries Preview02 - 關於單元測試 V.S. 整合測試 V.S. 端對端測試

    • 單元 5 - TestSeries Preview03 - 關於測試學程

    • 單元 6 - TestSeries Preview03 - 關於測試學程

  • 4

    第 4 章 工具下載與安裝

    • 單元 1 - 工具下載與安裝

    • 單元 2 - 工具下載與安裝

    • 單元 3 - Visual Studio 2017下載安裝說明

    • 單元 4 - Visual Studio 2017下載安裝說明

    • 單元 5 - SQL Server 2019下載與安裝

    • 單元 6 - SQL Server 2019下載與安裝

    • 單元 7 - Visual Studio 2019下載與安裝

    • 單元 8 - Visual Studio 2019下載與安裝

    • 單元 9 - PocoGenerator下載與安裝(VS2019)

    • 單元 10 - PocoGenerator下載與安裝(VS2019)

    • 單元 11 - NUnit3TestAdapter下載與安裝(VS2019)

    • 單元 12 - NUnit3TestAdapter下載與安裝(VS2019)

  • 5

    第 5 章 TSQL和Unit of Work和Repository觀念解說 (課程從這開始)

    • 單元 1 - Tutorial 48講義: 認識UnitOfWork和Repository觀念

    • 單元 2 - Tutorial 48-01: 安裝PocoGenerator和建立資料庫

    • 單元 3 - Tutorial 48-02: 了解TSQL, 建立Table

    • 單元 4 - Tutorial 48-03: 了解TSQL, Insert資料

    • 單元 5 - Tutorial 48-04: 了解TSQL, Dynamic TSQL

    • 單元 6 - Tutorial 48-05: 了解TSQL, Stored Procedure

    • 單元 7 - Tutorial 48-06: 了解TSQL, 重置Insert Data

    • 單元 8 - Tutorial 48-07: 了解TSQL, 建立Test Database

    • 單元 9 - Tutorial 48-08: UnitOfWork和Repository觀念

  • 6

    第 6 章 Entity Framework Poco Generator解說

    • 單元 1 - Tutorial 49講義: 用PoCoGenerator來加速開發EF

    • 單元 2 - Tutorial 49-01: 了解TSQL, 建立Table

    • 單元 3 - Tutorial 49-02: 用PoCoGenerator製造OnlineGameTwo Solution

    • 單元 4 - Tutorial 49-03: 準備OnlineGame Solution

    • 單元 5 - Tutorial 49-04: 了解OnlineGame Solution在不同project的細節

    • 單元 6 - Tutorial 50講義: PoCoGenerator加速開發EF的Table

    • 單元 7 - Tutorial 50-01: 理解Domain Entity

    • 單元 8 - Tutorial 50-02: 理解Entity Configuration

    • 單元 9 - Tutorial 50-03: 理解DbContext

    • 單元 10 - Tutorial 50-04: 製作Migration Init

    • 單元 11 - Tutorial 50-05: UiConsoleApp中的一些StaticMethod

    • 單元 12 - Tutorial 50-06: 使用EF去跑Find

    • 單元 13 - Tutorial 50-07: 使用EF去跑Add

    • 單元 14 - Tutorial 50-08: 使用EF去跑AddRange

    • 單元 15 - Tutorial 50-09: 使用EF去跑RemoveRange

    • 單元 16 - Tutorial 50-10: 使用EF去跑Remove

    • 單元 17 - Tutorial 51講義: PoCoGenerator加速開發EF的Stored Procedure

    • 單元 18 - Tutorial 51-01: Poco Generator製造EF Code First程式碼呼叫Stored Procedure

    • 單元 19 - Tutorial 51-02: 擷取必要的EF Code First程式碼到real project

    • 單元 20 - Tutorial 51-03: 製作Print Method

    • 單元 21 - Tutorial 51-04: 使用EF去跑Stored Procedure, SpSearchGamerAndDetail

    • 單元 22 - Tutorial 51-05: 使用EF去跑Stored Procedure, SpInsertGamerAndDetail

    • 單元 23 - Tutorial 51-06: 使用EF去跑Stored Procedure, SpUpdateGamerAndDetail

    • 單元 24 - Tutorial 51-07: 使用EF去跑Stored Procedure, SpDeleteGamerAndDetail

    • 單元 25 - Tutorial 51-08: 理解Migration Stored Procedure

    • 單元 26 - Tutorial 51-09: 理解Connection String在各個Project的細節

  • 7

    第 7 章 Unit of Work和Repository

    • 單元 1 - Tutorial 52講義: Entity Validator

    • 單元 2 - Tutorial 52-01: 關於Gamer Detail Validator

    • 單元 3 - Tutorial 52-02: 關於Gamer Validator

    • 單元 4 - Tutorial 53講義: Generic Repository

    • 單元 5 - Tutorial 53-01: 理解Data Repository層的Generic Repository Interface的IRepository

    • 單元 6 - Tutorial 53-02: 理解Data Repository層的Generic Repository Interface的IOnePkWith

    • 單元 7 - Tutorial 53-03: 理解Data Repository層的Generic Repository Interface的IGetWithAl

    • 單元 8 - Tutorial 53-04: 理解Data Repository層的Generic Repository Interface的IGetAllWithAllOthersRepository

    • 單元 9 - Tutorial 53-05: 理解Data Repository層的Generic Repository Interface的IAddReposit

    • 單元 10 - Tutorial 53-06: 理解Data Repository層的Generic Repository Interface的IDeleteRe

    • 單元 11 - Tutorial 53-07: 理解Data Repository層的Generic Repository InterfaceIUpdateRepository

    • 單元 12 - Tutorial 53-08: 理解Data Repository層的Generic Repository的Repository

    • 單元 13 - Tutorial 53-09: 理解Data Repository層的Generic Repository的AddRepository

    • 單元 14 - Tutorial 53-10: 理解Data Repository層的Generic Repository的OnePkRepository

    • 單元 15 - Tutorial 54講義: DataRepository層的EntityRepository和UnitOfWork

    • 單元 16 - Tutorial 54-01: 關於GamerDetailRepository

    • 單元 17 - Tutorial 54-02: 關於GamerRepository

    • 單元 18 - Tutorial 54-03: 關於IUnitOfWork

    • 單元 19 - Tutorial 54-04: 關於UnitOfWork

    • 單元 20 - Tutorial 55講義: 使用Data Repository層的OnePk Repository

    • 單元 21 - Tutorial 55-01: 針對OnePk, 使用Unit of Work的Add

    • 單元 22 - Tutorial 55-02: 針對OnePk,使用Unit of Work的AddRange

    • 單元 23 - Tutorial 55-03: 針對OnePk,使用Unit of Work的Update

    • 單元 25 - Tutorial 56-01: 使用Unit of Work呼叫StoredProcedure的SpSearchGamerAndDetail

    • 單元 26 - Tutorial 56-02: 使用Unit of Work呼叫StoredProcedure的SpInsertGamerAndDetail

    • 單元 27 - Tutorial 56-03: 使用Unit of Work呼叫StoredProcedure的SpUpdateGamerAndDetail

    • 單元 24 - Tutorial 56講義: 使用Data Repository層的UnitOfWork的Stored Procedure

    • 單元 28 - Tutorial 56-04: 使用Unit of Work呼叫StoredProcedure的SpDeleteGamerAndDetail

  • 8

    第 8 章 Fake和Comparer

    • 單元 1 - Tutorial 57講義: 使用FakeDbContext

    • 單元 2 - Tutorial 57-01: 使用FakeDbContext

    • 單元 4 - Tutorial 58-01: 使用GamerDetailComparer

    • 單元 5 - Tutorial 58-02: 使用GamerComparer

    • 單元 3 - Tutorial 58講義: 關於Equal和Compare

    • 單元 6 - Tutorial 58-03: 使用SpSearchGamerAndDetailReturnModelComparer

  • 9

    第 9 章 使用NUnit做單元測試

    • 單元 1 - Tutorial 59講義: 關於NUnit測試Equal和Compare

    • 單元 2 - Tutorial 59-01: 使用NUnit測試GamerDetailComparerTest

    • 單元 3 - Tutorial 59-02: 使用NUnit測試GamerComparerTest

    • 單元 4 - Tutorial 59-03: 使用NUnit測試SpSearchGamerAndDetailReturnModelComparerTest

    • 單元 5 - Tutorial 60講義: 使用NUnit測試Data Repository層的EntityValidator

    • 單元 6 - Tutorial 60-01: 使用NUnit測試Data Repository層的GamerDetailValidator

    • 單元 7 - Tutorial 60-02: 使用NUnit測試Data Repository層的GamerValidator

    • 單元 8 - Tutorial 61講義: NUnit的Unit Test測試TestDataNUnitRepository的EntityRepository

    • 單元 9 - Tutorial 61-01: 使用NUnit測試GamerDetailRepositoryTest的TestInitialize和CleanUp

    • 單元 10 - Tutorial 61-02: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的GetAll和Find

    • 單元 11 - Tutorial 61-03: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的SingleOrDefault

    • 單元 12 - Tutorial 61-04: 使用NUnit測試GamerDetailRepositoryTest的OnePkRepositoryGet

    • 單元 13 - Tutorial 61-05: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryGet

    • 單元 14 - Tutorial 61-06: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的Add和Remove

    • 單元 15 - Tutorial 61-07: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的AddRange和RemoveRanger

    • 單元 16 - Tutorial 61-08: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryUpda

    • 單元 17 - Tutorial 61-09: 使用NUnit測試的觀念複習

    • 單元 18 - Tutorial 61-10: 使用NUnit測試GamerRepositoryTest的TestInitialize和CleanUp

    • 單元 19 - Tutorial 61-11: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的GetAll和Find

    • 單元 20 - Tutorial 61-12: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的SingleOrDefault

    • 單元 21 - Tutorial 61-13: 使用NUnit測試GamerRepositoryTestt的OnePkRepositoryGet

    • 單元 22 - Tutorial 61-14: 使用NUnit測試GamerRepositoryTest的EntityRepositoryGet

    • 單元 23 - Tutorial 61-15: 使用NUnit測試GamerRepositoryTest的EntityRepository的Add和Rem

    • 單元 24 - Tutorial 61-16: 使用NUnit測試GamerRepositoryTest的EntityRepository的AddRang

    • 單元 25 - Tutorial 61-17: 使用NUnit測試GamerRepositoryTest的EntityRepositoryUpdate

  • 10

    第 10 章 使用NUnit做整合測試

    • 單元 1 - Tutorial 62講義: NUnit的Unit Test測試TestDataNUnitIntegration的EntityRepository

    • 單元 2 - Tutorial 62-01: 使用NUnit測試GamerDetailRepositoryTest的TestInitialize和CleanUp

    • 單元 3 - Tutorial 62-02: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的Get

    • 單元 4 - Tutorial 62-03: 使用NUnit測試GamerDetailRepositoryTest的OnePkRepositoryGet

    • 單元 5 - Tutorial 62-04: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryGet

    • 單元 6 - Tutorial 62-05: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的Add和AddRange和Remove

    • 單元 7 - Tutorial 62-06: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryUpdate

    • 單元 8 - Tutorial 62-07: 使用NUnit測試GamerRepositoryTest的TestInitialize和CleanUp

    • 單元 9 - Tutorial 62-08: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的GetAll和

    • 單元 10 - Tutorial 62-09: 使用NUnit測試GamerRepositoryTestt的OnePkRepositoryGet

    • 單元 11 - Tutorial 62-10: 使用NUnit測試GamerRepositoryTest的EntityRepositoryGet

    • 單元 12 - Tutorial 62-11: 使用NUnit測試GamerRepositoryTest的EntityRepository的Add和A

    • 單元 13 - Tutorial 62-12: 使用NUnit測試GamerRepositoryTest的EntityRepositoryUpdate

    • 單元 14 - Tutorial 62-13: 關於TestOrder

    • 單元 15 - Tutorial 63講義: NUnit的Integration Test測試TestDataNUnitIntegration的Stored Procedure

    • 單元 16 - Tutorial 63-01: 使用NUNit測試Stored Procedure, 討論TestInitialize和TestCleanup

    • 單元 18 - Tutorial 63-03: 使用NUNit測試SpInsertGamerAndDetail, SpUpdateGamerAndDeta

    • 單元 17 - Tutorial 63-02: 使用NUNit測試SpSearchGamerAndDetailReturnModel

    • 單元 19 - Tutorial 63-04: 使用NUNit測試SpDeleteGamerAndDetail

  • 11

    第 11 章 使用MSTest做單元測試

    • 單元 1 - Tutorial 64講義: 關於MSTest測試Equal和Compare

    • 單元 2 - Tutorial 64-01: 使用MSTest測試GamerDetailComparerTest

    • 單元 3 - Tutorial 64-02: 使用MSTest測試GamerComparerTest

    • 單元 4 - Tutorial 64-03: 使用MSTest測試SpSearchGamerAndDetailReturnModelComparerTe

    • 單元 5 - Tutorial 65講義: 使用MSTest測試Data Repository層的EntityValidator

    • 單元 6 - Tutorial 65-01: 使用MSTest測試Data Repository層的GamerDetailValidator

    • 單元 7 - Tutorial 65-02: 使用MSTest測試Data Repository層的GamerValidator

    • 單元 8 - Tutorial 66講義: MSTest的Unit Test測試TestDataRepository的EntityRepository

    • 單元 9 - Tutorial 66-01: 使用MSTest測試TestDataRepository的GamerDetailRepositoryTest

    • 單元 10 - Tutorial 66-02: 使用MSTest測試TestDataRepository的GamerRepositoryTest

  • 12

    第 12 章 使用MSTest做整合測試

    • 單元 1 - Tutorial 67講義: MSTest的Integration Test測試TestDataIntegration的EntityRepository

    • 單元 2 - Tutorial 67-01: 使用MSTest測試TestDataIntegration的GamerDetailRepositoryTest

    • 單元 3 - Tutorial 67-02: 使用MSTest測試TestDataIntegration的GamerRepositoryTest

    • 單元 4 - Tutorial 68講義: MSTest的Integration Test測試TestDataIntegration的Stored Procedure

    • 單元 5 - Tutorial 68: MSTest的Integration Test測試TestDataIntegration的Stored Procedure

  • 13

    第 13 章 Mocking Framework隔離框架, Moq V.S. NSubstitute

    • 單元 1 - Tutorial 69講義: Mocking Framework隔離框架 Moq V.S. NSubstitute

    • 單元 2 - Tutorial 69-01: 建立IGamer和IDetailGamer Interface,並且寫LuckyReward邏輯

    • 單元 3 - Tutorial 69-02: 使用Moq搭配NUnit

    • 單元 4 - Tutorial 69-03: 使用Moq搭配MSTest

    • 單元 5 - Tutorial 69-04: 使用NSubstitute搭配NUnit

    • 單元 6 - Tutorial 69-05: 使用NSubstitute搭配MSTest

    • 單元 7 - Tutorial 69-06: 結論