Gelis - 程式設計訓練營 - 單元測試 UnitTest 與 Moq 物件實務課程

  • 2019/06/23(Sun) 10:00(+0800) ~ 17:00(+0800) ( iCal/Outlook, Google Calendar )
  • 台北科大育成中心會議室(光華館3樓306室) / 臺北市大安區新生南路一段1號
  • 4 / 10
  • 軟體開發之路 暨 Gelis 的程式設計訓練營Contact Organizer

@ 課程主題:
單元測試 Unit Test 與 Moq 物件實務課程

在測試理論蓬勃發展的現今,您還不撰寫測試嗎?或者覺得測試根本沒時間撰寫,很難寫?本課程可以帶您基本進入單元測試 Unit Test 的大門。

 

@ 課程緣由:
近年來越來越多團隊與專案都開始重視單元測試的重要性您還是認為撰寫單元測試很浪費時間嗎?或者是撰寫單元測試總是要花費很多的時間?但是撰寫程式碼時,又常常改東壞西?也很難預估程式碼撰寫與完成的時間嗎?撰寫了單元測試後,之後又要花很多時間來維護這套單元測試專案,變成要多維護一套程式的窘境嗎?

事實上,軟體開發中的單元測試 Unit Test 可能能夠幫助你:

  • 了解系統的複雜度
  1. 系統複雜度越高,代表職責越容易牽扯在一起
  2. 複雜度高,也代表不好維護,通常是重構的優先選擇
  3. 重構前,撰寫測試
  • 解決外部依賴
  1. 外部依賴越強,代表耦合性越強,代表越難進行測試
  2. 如果因為外部依賴強,導致撰寫(測試/模擬)成本過高,那麼就建議直接撰寫整合測試
  3. 在有整合測試的保護下,後續對 Legacy Code撰寫Unit Test才有個後盾

撰寫單元測試的好處真的非常的多,比如:

  • 撰寫單元測試容易發現系統中的壞味道
  • 撰寫單元測試讓您在需求異動時,維護成本降至最低
  • 撰寫單元測試讓您進行回歸測試時成本降至最低
  • 撰寫單元測試讓您重構時,不必擔心改壞程式碼
  • 撰寫單元測試讓您新增功能時,不必擔心影響舊有程式碼
  • 撰寫單元測試讓您不間斷的 Review Code 是否具備足夠維護性
  • 撰寫單元測試讓您團隊間不同成員銜接更加容易
  • 撰寫單元測試讓您的團隊容易制定標準與規範
  • 撰寫測試容易將測試的工作自動化

如果您對於單元測試實在不知道如何下手,那麼也許您可以來聽聽本基礎課程唷。

注意:【重要】本課程不算基礎課程,您必須有一定的 C# 語言基礎與相依性注入 DI 或者甚至 Ioc (Inverion of Control) 以及 物件導向五大設計原則 SOLID 等概念

 

@ 課程大綱 (Agenda):
● 為什麼要撰寫測試?與撰寫單元測試的好處?
● Unit Test 概論,從軟體開發常見問題探討 Unit Test 重要性
● 單元測試須具備的特性
● 單元測試的 3A 原則(Arrange, Act, Assert)
● 撰寫單元測試的時機點
● 撰寫單元測試的目的
● 建立第一個單元測試專案
● Moq Framework 與 Microsoft Fakes 物件概念
● 如何透過 Unit Test 設計出低相依性、耦合度低的軟體
● 使用 Moq 在測試期間隔離程式碼
● 幾款 Mock Framework 介紹
● 結合自動化測試 Team Build (CI, Continuous Integrated)

註:完全沒有 Unit Test 相關經驗者也可參加。

@ 課程對象:

  • 已有 C# 約 1-2 年 C# 開發經驗的開發人員
  • 想了解單元測試如何撰寫,或有意評估在專案中撰寫單元測試的開發人員

 

@ 課程目標:
由老師手把手(帶著/告訴)大家,並使用一個最簡單的例子說明如何對現有的 Legacy Code 撰寫隔離 Isolation Unit Test、也會教大家如何手刻 Fakes 假物件來進行 Isolation Unit Test,最後說明常見的 Moq Framework 單元測試框架。

 

@ 課前須知:
本課程需自備電腦,關於環境準備,請自行先安裝好 Visual Studio 2019 Community 如果是Professional 或 Enterprise 以上會更好

建議作業環境:

Windows 7 Update1 以上 (含最新的 HotFix 才能裝 VS2019)

如果為 Windows 8.1 或 Windows 10 更佳

 

雖然是單元測試課程,但安裝 Visual Studio 2019 時,還是請將『ASP.NET 與網頁開發』、『.NET 桌面開發』安裝起來。

(1). 請勾選 ASP.NET 與網頁開發 以及 .NET 桌面開發

(2). 請將所有(包含最新).NET Framework SDK 工具一並勾選起來

相關軟體可至下方連結下載,並安裝(連結如下):

(1). 下載 Visual Studio 2019 Community:

https://www.visualstudio.com/zh-hant/

 

注意:環境部分請在上課前自行備妥,請針對您的作業環境下載對應安裝檔案安裝,謝謝。

 

@ 關於講師:


我是 Gelis,從事軟體專案開發相關工作已經 19 餘年(顧問工作4年),專案開發 15 年,目前任職於集英信誠顧問公司,目前主要負責與 .NET 相關的開發、顧問工作。

我熱愛軟體工程、UML 系統分析與設計,擅長 OO 物件導向分析與設計外,也擅長將看似與程式碼無關的 OOA 與 OOD 的設計模型推導為實際程式碼,專精於 .NET 平台網頁 ASP.NET Web Form 與 MVC 開發與 WinForm 開發,領域包含了 WinForm、WPF 等。

主要負責軟體開發架構、流程的導入的顧問工作,主要核心價值在於在導入適當的開發平台 Platform 框架 Framework,配合 (Team Foundation Server, TFS) 產品與 ALM 的Scrum 流程,搭配自動化 Code-Review 並結合 Team Build 進行自動化測試,持續整合 (Continuous Integrated, CI)、並做到自動化部署 (Continuous Deployment, CD),以提升開發團隊的效率與價值。

曾經連任七屆微軟最有價值專家 MVP,有個人的技術部落格 『Gelis 技術隨筆』,以記錄在技術上學習的新知與個人的研究發表。

@ 講師經歷:

  • 2015集英信誠-與大師對談講師
  • .NET Conf Taiwan 2018 講師
  • Visual Studio Everywhere 台北場講師
  • Study4.TW 社群講師
  • 企業內訓講師

@ 現職:

  • 集英信誠 資深 .NET 技術顧問
  • Microsoft MVP (2011~2018)

@ 關於午餐

本課程提供中午便當

餐食(葷/素)問卷 將於報名成功後寄送至您的電子信箱之中。

 

@ 講師的顧問相關經歷:
1. 成功協助企業導入 Dummies Framework 框架
2. 成功協助企業導入 TFS 或 VSO (Visual Studio Online) + Scrum 開發流程
3. 成功協助企業導入 Release Management 以進行 (Continuous Integrated, CI) 與 (Continuous Deployment, CD)
2. 企業 Visual Studio 2013/C#課程講師
3. 企業 IIS 7.5/8.0/8.5 訓練講師
4. 企業 ASP.NET MVC/ Web Form 訓練講師
5. 企業 Web API/WCF 訓練講師

@ 講師教受過課程:
[.NET 技術研討(LINQ與架構開發)]
[WCF 進階課程]
[ASP.NET MVC 4 Web API 開發簡介]
[ASP.NET MVC 4 Web API全攻略]
[前端大型系統的基石 TypeScript]
[客製化的 Web API 的框架設計]
[CSharp 4.0 LINQ 與泛型應用(簡介與開發)]
[ASP.NET MVC 6 新功能初探]
[IIS 7.0 應用程式開發實務]
[Visual Studio 2010 UML]
[Visual Studio 2012 與 ASP.NET 4.5 (新功能與開發介紹)]
[Visual Studio 2013 新功能介紹]
[如何培養架構性思考(談軟體架構師必經之路)]
[如何將現有ASP.NET Web Form網站轉為ASP.NET MVC]
[架構設計好簡單系列 - 設計符合團隊的範本精靈 (Project Template)]
[團隊開發永遠的痛 - 談導入團隊開發的共同規範]
[一個 ASP.NET Core 2.1 開發指南]
[使用 Release Management 2013 進行自動化部署]
[前端大型系統的基石 TypeScript]
[決戰 OOAD 系列課程-使用UML]

@ 我的連絡方式:

Skype/EMail:
wergelis@msn.com

關於我:

部落格 (Gelis 技術隨筆):

http://gelis-dotnet.blogspot.tw

https://www.dotblogs.com.tw/gelis/

FB 社團 (軟體開發之路):

https://www.facebook.com/groups/361804473860062/

FB 粉絲團 (Gelis 的程式設計訓練營):

https://www.facebook.com/gelis.dev.learning/

我講授過的課程 SlideShare:

https://www.slideshare.net/GelisWu

Github:

https://github.com/wugelis

 

注意事項

  1. 現場備有 WiFi ,但人數一多,速度可能沒辦法保證比你自己的 4G 來的快。
  2. 如遇不可抗力或意外狀況,活動主辦單位得以保留改期、調整內容、或是取消活動與將全額退費之權利。
  3. 這是一個收費的課程,因為這完全是一個實務經驗的分享課程,您覺得內容您有需要就可來報名參加,講師必定讓您滿載而歸,並應用在您實際的工作環境之中。

 

購票與退票相關事宜

  1. 本活動由 KKTIX 代為處裡售票與退票相關事宜。
  2. 退票郵購票者提出,KKTIX 會酌收 10% 手續費,且活動前十天內(不含活動日)不予退票。
  3. 詳情請參閱 KKTIX 服務條款

 

主辦與協辦單位

   

台北科大育成中心會議室(光華館3樓306室) / 臺北市大安區新生南路一段1號

Event Tickets

Ticket Type Sale Period Price
早鳥票 2019/06/13 13:00(+0800) ~ 2019/06/19 22:00(+0800) End of Sale
  • TWD$2,700
軟體開發之路【老友票】 2019/06/17 00:00(+0800) ~ 2019/06/21 18:00(+0800) End of Sale
  • TWD$2,500
一般票 2019/06/19 22:00(+0800) ~ 2019/06/21 22:00(+0800) End of Sale
  • TWD$3,000
Next Step

4 Attendees

Show Attendees Hide Attendees
...And other 3 people