02_04B Test

02_04B Test
  
【測試第1篇: 快速入門MSTest V.S. NUnit】
Test episode 1: Basic, MSTest V.S. NUnit
課程編號: 960a6ca4-e72d-4ec9-b2e9-485c2c2b72b1
Tutorial 01 to Tutorial 31
分別使用 MSTest 和 NUnit 兩種語法寫測試,並透過實際測試同一功能,介紹兩者的差異和比較,幫助融會貫通兩項技術。大部分的公司會使用其中一種做為主要測試語法,因此學完後能馬上運用!
此講義目錄Table of Content:   https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
此YouTube PlayList:  https://www.youtube.com/playlist?list=PLXstZ12GxF9yd5cF6y8Rd3cJn-DcRiNNV
------------------------------------
=============================
  
【測試第2篇: 隔離框架NSubstitute V.S. Moq 】
Test episode 2: Mocking Framework, NSubstitute V.S Moq
課程編號: 7ab928b2-f0a2-4bef-98c6-28b6bf6caf82
Tutorial 32 to Tutorial 47
介紹 Test Double(模擬物件)觀念,解釋 Dummy、Stub、Spy、Mock 和 Fake 的異同。學會使用 Mocking Framework(隔離框架)來動態生成 Test Double,並介紹 Moq 和 Nsubstitute 隔離框架語法的差異和比較。
此講義目錄Table of Content:   https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
此YouTube PlayList:  https://www.youtube.com/playlist?list=PLXstZ12GxF9x9Tv1z3xTzM3lDWb4cnfEX
------------------------------------
Pre-Requirement
TSQL
https://ithandyguytutorial.blogspot.com/p/sql-foundation.html
C#
https://ithandyguytutorial.blogspot.com/p/c-foundation.html
Linq
https://ithandyguytutorial.blogspot.com/p/linq-foundation-lfoundation-video-for.html
=============================
  
【測試第3篇: 熟能生巧Unit Test V.S. Integration Test 】
Test episode 3: Unit Test V.S. Integration Test
課程編號: 3b6b9345-e5ff-4593-937d-80d2824f956a
Tutorial 48 to Tutorial 69
我們將討論 Unit Test (單元測試)和 Integration Test (整合測試)的差異和比較。高的 Code Coverage (代碼覆蓋率)不等於 High quality test suite (高品質的自動化測試),但是太低的 Code Coverage (代碼覆蓋率) 肯定代表你寫的自動化測試的品質不夠。本篇要用最直白實用的範例,透過合理的 Code Coverage 觀念來抓住寫測試的感覺,讓您有效率的測試自己所撰寫的程式碼。
此講義目錄Table of Content:   https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
此YouTube PlayList:  https://www.youtube.com/playlist?list=PLXstZ12GxF9xF8DQN-TPtIEIf2jcmxkrK
------------------------------------
Pre-Requirement
TSQL
https://ithandyguytutorial.blogspot.com/p/sql-foundation.html
C#
https://ithandyguytutorial.blogspot.com/p/c-foundation.html
Linq
https://ithandyguytutorial.blogspot.com/p/linq-foundation-lfoundation-video-for.html
MVC
https://ithandyguytutorial.blogspot.com/p/aspnet-mvc-foundation.html
Entity Framework episode 1 ~ 3
https://ithandyguytutorial.blogspot.com/p/entityframework-foundation.html
Entity Framework episode 1 - Code First V.S. DB First
Entity Framework episode 2 - Fluent API V.S. Data Annotation
Entity Framework episode 3: Unit of work with Repository
Entity Framework episode 4: POCO generator
https://ithandyguytutorial.blogspot.com/p/07bentityframeworkreversepocogenerator.html
=============================
  
【測試第4篇: 斷言神器FluentAssertions Part1】
Test episode 4: Open Source Libraries.  FluentAssertions Part1
課程編號: db4e7f68-107a-492c-8c8c-856cc14bdfe8
Tutorial 70 to Tutorial 79
每個公司所用的 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。
此講義目錄Table of Content:   https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
此YouTube PlayList:  https://www.youtube.com/playlist?list=PLXstZ12GxF9yQK8iE7jx-jYxcwYuaN8ES
------------------------------------
Pre-Requirement
TSQL
https://ithandyguytutorial.blogspot.com/p/sql-foundation.html
C#
https://ithandyguytutorial.blogspot.com/p/c-foundation.html
Linq
https://ithandyguytutorial.blogspot.com/p/linq-foundation-lfoundation-video-for.html
Test B Episode 1~2
https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
=============================
  
【測試第5篇: 斷言神器FluentAssertions Part2】
Test episode 5: Open Source Libraries.  FluentAssertions Part2
課程編號: c20f435f-756b-44ae-8fef-b9eea06a0ebf
Tutorial 80 to Tutorial 90
每個公司所用的 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。
此講義目錄Table of Content:   https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
此YouTube PlayList:  https://www.youtube.com/playlist?list=PLXstZ12GxF9xLq0Gvsd_554McRm9UUkm-
------------------------------------
Pre-Requirement
TSQL
https://ithandyguytutorial.blogspot.com/p/sql-foundation.html
C#
https://ithandyguytutorial.blogspot.com/p/c-foundation.html
Linq
https://ithandyguytutorial.blogspot.com/p/linq-foundation-lfoundation-video-for.html
Test B Episode 1~2
https://ithandyguytutorial.blogspot.com/p/unit-test-by-nunit-foundation.html
===================================

.NET Framework學習之路.

此為.NET Framework學程中的其中一門課。

Tools

Tools installation and settings instruction.
Please read the following
-->
T000_001_InstallSQLServer2016
T000_003_Install Visual Studio 2017 Offline
T000_008_NUnit

Test Series Preview

TestSeries_Preview01_AboutTest
TestSeries Preview01 - 關於測試

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

TestSeries_Preview03_AboutTestSeries
TestSeries Preview03 - 關於測試學程

本篇程導讀

Intro : Test episode 01 MSTest V.S. NUnit
導讀 : 測試第1篇: 入門語法 MSTest V.S. NUnit

Intro : Test episode 2: Mocking Framework, NSubstitute V.S Moq
導讀 : 測試第2篇: 隔離框架NSubstitute V.S. Moq

Intro : Test episode 3: Unit Test V.S. Integration Test
導讀 : 測試第3篇: 熟能生巧Unit Test V.S. Integration Test

Intro : Test episode 4: Open Source Libraries.  FluentAssertions Part1
導讀 : 測試第4篇: 斷言神器FluentAssertions Part1

Intro : Test episode 5: Open Source Libraries.  FluentAssertions Part2
導讀 : 測試第5篇: 斷言神器FluentAssertions Part2

Test episode 1: Basic, MSTest V.S. NUnit
測試第1篇: 快速入門MSTest V.S. NUnit 

Basic of MSTest and NUNit
MSTest和NUnit的基礎觀念

T001_NUnitBasics

T001_01_BasicConcept_InstallNUnit3TestAdapter
T001_02_WriteSomeCodeAndUi
T001_03_NUnit
T001_04_MSTest
----------------------
Tutorial 01講義: NUnit的基本觀念
Tutorial 01-01: 基本觀念介紹,安裝NUnit 3 Test Adapter
Tutorial 01-02: 寫一個簡單的Code,和實作簡單Ui
Tutorial 01-03: 用NUnit來寫Test

Tutorial 01-04: 用MSTest來寫Test




T002_GenerateAndDebugUnitTest
T002_01_GenerateUnitTest
T002_02_DebugUnitTest
T002_03_ReDoByNUnit
----------------------
Tutorial 02講義: 使用自動生成器生成單元測試並且Debug。
Tutorial 02-01: 自動生成MSTest
Tutorial 02-02: 如何Debug Unit Test
Tutorial 02-03: 使用NUnit重構


Trait of MSTest and NUNit
MSTest和NUnit的Trait特徵


T003_GroupingAndFiltering
T003_01_MSTestGroupingAndFiltering
T003_02_NUnitGroupingAndFiltering
----------------------
Tutorial03講義: 關於Test Explorer的Grouping和Filtering
Tutorial 03-01: MSTest的Grouping和Filtering
Tutorial 03-02: NUnit的Grouping和Filtering


MSTest Concept
MSTest的觀念


T004_VS2013Pro_CodeCoverage_TestPrivateMethod_Exception_Order_GenericTest_CommandLine
T004_01_WriteSomeCode
T004_02_MSTest
T004_03_CodeCoverage
T004_04_MSTest_Exception
T004_05_MSTest_PrivateMethod
T004_06_MSTest_OrderedTests
T004_07_MSTest_Generic Tests
T004_08_MSTest_RunMSTestByCommandLine
----------------------
Tutorial04講義: 使用VS2013Pro了解Code Coverage。Private Method的單元測試。關於Test Exception、Order Tests、Generic Test。使用command line跑MSTest。
Tutorial 04-01: 寫一些Code
Tutorial 04-02: 寫MSTest
Tutorial 04-03: 討論Code Coverage
Tutorial 04-04: 測試Exception
Tutorial 04-05: 測試Private Method
Tutorial 04-06: 使用Ordered Tests
Tutorial 04-06: 使用Generic Tests
Tutorial 04-07: 使用Generic Tests
Tutorial 04-08: 使用command line跑MSTest


TestContext V.S System.Diagnostics.Debug

T005_TestContextWriteLine_SystemDiagnosticsDebugWriteLine
T005_01_VS2013Pro_TestContextWriteLine_SystemDiagnosticsDebugWriteLine
T005_02_VS2017Community_MSTest_TestContextWriteLine_SystemDiagnosticsDebugWriteLine
T005_03_VS2017Community_NUnit_TestContextWriteLine_SystemDiagnosticsDebugWriteLine
----------------------
Tutorial05講義: 關於TestContext.WriteLine V.S. System.Diagnostics.Debug.WriteLine
Tutorial 05-01: 在VS2013Pro使用TestContextWriteLine和SystemDiagnosticsDebugWriteLine
Tutorial 05-02: 在VS2017Community使用MSTest了解TestContextWriteLine和SystemDiagnosticsDebugWriteLine
Tutorial 05-03: 在VS2017Community使用NUnit了解TestContextWriteLine和SystemDiagnosticsDebugWriteLine


MSTest and NUnit Data Driven
MSTest和NUnit的Data Driven觀念


T006_YieldReturn
T006_01_YieldReturn_FilterSample
T006_02_YieldReturn_TotalSample
-----------------------
Tutorial 06講義: 關於Yield Return
Tutorial 06-01: Yield Return的Filter Sample
Tutorial 06-02: Yield Return的Total Sample



T007_ReadCsv
T007_01_Prepare
T007_02_ReadCsv
T007_03_ReadCsv_WithException
T007_04_ReadCsv_YieldReturn
T007_05_ReadCsv_YieldReturn_WithException
T007_06_ReadCsvByLumenWorksCsvReader
T007_07_ReadCsvByLumenWorksCsvReader_WithException
T007_08_ReadCsvByLumenWorksCsvReader_YieldReturn
T007_09_ReadCsvByLumenWorksCsvReader_YieldReturn_WithException
T007_10_ReadCsvByLinq
T007_11_ReadCsvByLinq_WithException
T007_12_ReadCsvByLinq_YieldReturn
T007_13_ReadCsvByLinq_YieldReturn_WithException
-----------------------
Tutorial 07講義: 讀取CSV
Tutorial 07-01: 一些設定
Tutorial 07-02: 讀取CSV
Tutorial 07-03: 讀取CSV,遇到exception就跳過。
Tutorial 07-04: 讀取CSV,使用yield return。
Tutorial 07-05: 讀取CSV,使用yield return,遇到exception就跳過。
Tutorial 07-06: 使用LumenWorksCsvReader讀取CSV
Tutorial 07-07: 使用LumenWorksCsvReader讀取CSV,遇到exception就跳過。
Tutorial 07-08: 使用LumenWorksCsvReader讀取CSV,使用yield return。
Tutorial 07-09: 使用LumenWorksCsvReader讀取CSV,使用yield return,遇到exception就跳過。
Tutorial 07-10: 使用Linq讀取CSV
Tutorial 07-11: 使用Linq讀取CSV,遇到exception就跳過。
Tutorial 07-12: 使用Linq讀取CSV,使用yield return。
Tutorial 07-13: 使用Linq讀取CSV,使用yield return,遇到exception就跳過。





T008_ReadXml
T008_01_Prepare
T008_02_ReadXmlByLinq_Where_OrderBy_Let
T008_03_ReadXmlByLinq
T008_04_ReadXmlByLinq_WithException
T008_05_ReadXmlByLinq_YieldReturn
T008_06_ReadXmlByLinq_YieldReturn_WithException
-----------------------
Tutorial 08講義: 讀取Xml
Tutorial 08-01: 一些設定
Tutorial 08-02: 使用Linq讀取Xml並搭配Where、OrderBy、Let
Tutorial 08-03: 使用Linq讀取Xml
Tutorial 08-04: 使用Linq讀取Xml,遇到exception就跳過。
Tutorial 08-05: 使用Linq讀取Xml,使用yield return。
Tutorial 08-06: 使用Linq讀取Xml,使用yield return,遇到exception就跳過。



T009_ReadSqlByEntityFrameworkCodeFirst
Tutorial 09講義: 使用EntityFrameworkCodeFirst讀取Sql



T010_MSTest_DataSourceAttibute_Xml_Csv_SqlServer
T010_01_database
T010_02_VS2017Community_VS2013Pro_MSTest
T010_03_Create_XML_CSV
T010_04_MSTest_SQLServer_XML_CSV
T010_05_MSTest_AppConfig_SQLServer_XML_CSV
----------------------
Tutorial10講義: 關於MSTest的DataSourceAttibute,測試xml、CSV、sqlServer的Data
Tutorial 10-01: 準備好database
Tutorial 10-02: 在VS2017Community和VS2013Pro加入MSTest Project
Tutorial 10-03: 準備好XML和CSV
Tutorial 10-04: 使用MSTest測試SQLServer、XML、CSV裡面的Data
Tutorial 10-05: 使用MSTest並設定App.config測試SQLServer、XML、CSV裡面的Data




T011_NUnit_TestCaseSource_MSTest_DataSourceAttibute_Xml_Csv_SqlServer
------------
T011-01to03_MSTest_DataSourceAttibute_Xml_Csv_SqlServer
T011_01_database
T011_02_VS2017Community_prepare_Xml_Csv
T011_03_ReviseMSTest_DataSourceAttibute_SQLServer_XML_CSV
------------
T011_04_EntityFrameworkCodeFirst
T011_05_NUnit_Prepare
T011_06_NUnit_TestCaseSourceAttribute
T011_06_01_TestCase
T011_06_02_TestCaseSource_FromGlobalVariable
T011_06_03_TestCaseSource_FromTheMethodWithParameters
T011_06_04_TestCaseSource_FromTheMethodOfOtherClass
T011_06_05_TestCaseSource_FromOtherClassWhichImplementsIEnumerable
T011_06_06_TestCaseSource_FromOtherClass
T011_06_07_TestCaseSource_FromOtherClassMethodWithAndWithoutYieldReturn
T011_07_NUnit_TestCaseSourceAttribute_IEnumerableT
T011_08_NUnit_TestCaseSourceAttribute_TestCsv
T011_08_01_NUnit_TestCaseSourceAttribute_TestCsv
T011_08_02_NUnit_TestCaseSourceAttribute_TestCsv_WithYieldReturn
T011_09_NUnit_TestCaseSourceAttribute_TestXml
T011_10_NUnit_TestCaseSourceAttribute_TestSqlByEf
----------------------
Tutorial11講義: 關於NUnit的TestCaseSourceAttibute和MSTest的DataSourceAttibute,測試xml、CSV、sqlServer的Data
Tutorial 11-01: 準備好database
Tutorial 11-02: 在VS2017Community做前置準備,建立xml和csv範例。
Tutorial 11-03: 複習MSTest的DataSourceAttibute測試SQLServer、XML、CSV裡面的Data
Tutorial 11-04: 使用EntityFrameworkCodeFirst讀取Sql Server data
Tutorial 11-05: NUnit前置準備
Tutorial 11-06: NUnit的TestCaseSourceAttribute
Tutorial 11-06-01: 關於TestCase
Tutorial 11-06-02: 關於TestCaseSource測試GlobalVariable
Tutorial 11-06-03: 關於TestCaseSource測試有參數的Method
Tutorial 11-06-04: 關於TestCaseSource測試其他class的Method
Tutorial 11-06-05: 關於TestCaseSource測試有實作IEnumerable的Class
Tutorial 11-06-06: 關於TestCaseSource測試其他class
Tutorial 11-06-07: 關於TestCaseSource測試有和沒有Yield Return的其他class的method
Tutorial 11-07: NUnit使用TestCaseSourceAttribute去抓IEnumerableT當來源。
Tutorial 11-08: NUnit使用TestCaseSourceAttribute測試Csv data
Tutorial 11-08-01: NUnit使用TestCaseSourceAttribute測試Csv data
Tutorial 11-08-02: NUnit使用TestCaseSourceAttribute測試Csv data搭配Yield Return
Tutorial 11-09: NUnit使用TestCaseSourceAttribute測試Xml data
Tutorial 11-10: NUnit使用TestCaseSourceAttribute搭配EF測試Sql database server data


Test Execution Life Cycle And Test Sorting
關於Test Execution Life Cycle和Test Sotring 

T012_TestInitialize_TestCleanup_ClassInitialize_ClassCleanup_AssemblyInitialize_AssemblyCleanup
T012_01_MSTest_TestInitialize_TestCleanup_ClassInitialize_ClassCleanup_AssemblyInitialize_AssemblyCleanup
T012_02_MSTest_TestInitialize_ClassInitialize
-----------------------
Tutorial 12講義:  關於MSTest的TestInitialize,TestCleanup,ClassInitialize,ClassCleanup,AssemblyInitialize,AssemblyCleanup
Tutorial12-01: 關於MSTest的TestInitialize,TestCleanup,ClassInitialize,ClassCleanup,AssemblyInitialize,AssemblyCleanup
Tutorial12-02: 關於MSTest的TestInitialize和ClassInitialize中的變數存活




T013_TestExecutionLifeCycle_Output
T013_01_Prepare
T013_02_MSTest_TestClass_TestInitialize_TestCleanup_Output
T013_03_MSTest_TestClass_ClassInitialize_ClassCleanup_Output
T013_04_MSTest_TestClass_AssemblyInitialize_AssemblyCleanup_Output
T013_05_NUnit_TestFixture_SetUp_TearDown_Output
T013_06_NUnit_TestFixture_OneTimeSetUp_OneTimeTearDown_Output
T013_07_NUnit_SetUpFixture_OneTimeSetUp_OneTimeTearDown_Output
T013_08_ConceptSummary
-----------------------
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
Tutorial13-01: 前置準備
Tutorial13-02: 關於MSTest的TestClass的TestInitialize和TestCleanup搭配Output用法和限制。
Tutorial13-03: 關於MSTest的TestClass的ClassInitialize和ClassCleanup搭配Output用法和限制。
Tutorial13-04: 關於MSTest的TestClass的AssemblyInitialize和AssemblyCleanup搭配Output用法和限制。
Tutorial13-05: 關於NUnit的TestFixture的SetUp和TearDown搭配Output用法和限制。
Tutorial13-06: 關於NUnit的TestFixture的OneTimeSetUp和OneTimeTearDown搭配Output用法和限制。
Tutorial13-07: 關於NUnit的SetUpFixture的OneTimeSetUp和OneTimeTearDown搭配Output用法和限制。
Tutorial13-08: 觀念總結
-------------------------------------------------
討論以下
1.1.
MSTest: [TestClass] [AssemblyInitialize] and [TestClass] [AssemblyCleanup]
V.S.
NUnit: [SetUpFixture] [OneTimeSetUp] and [SetUpFixture] [OneTimeTearDown]
1.2.
MSTest: [TestClass] [ClassInitialize] and [TestClass] [ClassCleanup]
V.S.
NUnit: [TestFixture] [OneTimeSetUp] and [TestFixture] [OneTimeTearDown]
1.3.
MSTest: [TestClass] [TestInitialize] and [TestClass] [TestCleanup]
V.S.
NUnit: [TestFixture] [SetUp] and [TestFixture] [TearDown]
2.
Output: TestContext.WriteLine V.S System.Diagnostics.Debug.WriteLine V.S  Trace.TraceInformation V.S. Trace.WriteLine




T014_TimeOut_Ignore
T014_01_MSTest_TimeOut_Ignore
T014_02_NUnit_TimeOut_Ignore
-----------------------
Tutorial 14講義:  關於TimeOut Attribute和Ignore Attribute
Tutorial14-01: 關於MSTest的TimeOut Attribute和Ignore Attribute
Tutorial14-02: 關於NUnit的TimeOut Attribute和Ignore Attribute



T015_SortingTest
T015_01_Prepare
T015_02_NUnit_Order
T015_03_MSTest_Priority
T015_04_ConceptSummary
----------------------
Tutorial 15講義:  關於Sorting Test
Tutorial 15-01: 前置作業
Tutorial 15-02: 用NUnit的Order來Sorting Test
Tutorial 15-03: 用MSTest的Priority來Sorting Test
Tutorial 15-04: 觀念總結



Command Line Execution
使用Command Line跑Test 


T016_VS2017_CommandLine
T016_01_Prepare
T016_02_MSTest_Traits
T016_03_MSTest_CommandLine
T016_04_NUnit_Traits
T016_05_NUnit_CommandLine
----------------------
Tutorial 16講義:  在VS2017使用Command Line跑MSTest和NUnit
Tutorial 16-01: 前置作業
Tutorial 16-02: 複習MSTest的Traits
Tutorial 16-03: 在VS2017使用Command Line跑MSTest
Tutorial 16-04: 複習NUnit的Traits
Tutorial 16-05: 在VS2017使用Command Line跑NUnit


Assert
徹底解析大魔王Assert

T017_Equals_GetHashCode_IComparer_Compare
T017_01_Equals_GetHashCode
T017_02_IComparer_Compare
T017_03_MathematicsClass
----------------------
Tutorial 17講義:  關於override Equals和GetHashCode。並且比較實作IComparer的Compare
Tutorial 17-01: 理解Equals, GetHashCode
Tutorial 17-02: 理解IComparer, Compare
Tutorial 17-03: 討論等等用來測試的Mathematics Class



T018_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
T018_01_MSTest_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
T018_02_NUnit_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
----------------------
Tutorial 18講義:  關於StringAssert底下的StartsWith, EndsWith, Contains, Matches, DoesNotMatch
Tutorial 18-01:  使用MSTest, 關於StringAssert底下的StartsWith, EndsWith, Contains, Matches, DoesNotMatch
Tutorial 18-02:  使用NUnit, 關於StringAssert底下的StartsWith, EndsWith, Contains, Matches, DoesNotMatch



T019_Assert_Faill_InConclusive_Warn
T019_01_MSTest_Assert_Faill_InConclusive
T019_02_NUnit_Assert_Faill_InConclusive_Warn
----------------------
Tutorial 19講義:  關於Assert的Faill和InConclusive和Warn
Tutorial 19-01:  使用MSTest關於Assert的Faill, InConclusive
Tutorial 19-02:  使用NUnit關於Assert的Faill, InConclusive, Warn



T020_AssertIs_IsTrue_IsFalse_IsNull_IsNotNull_IsInstanceOf_IsNotInstanceOf
T020_01_MSTest_AssertIs_IsTrue_IsFalse_IsNull_IsNotNull_IsInstanceOfType_IsNotInstanceOfType
T020_02_NUnit_AssertIs_IsTrue_IsFalse_IsNull_IsNotNull_IsInstanceOf_IsNotInstanceOf
----------------------
Tutorial 20講義:  關於AssertIs, 包括IsTrue, IsFalse_IsNull_IsNotNull_IsInstanceOf_IsNotInstanceOf
Tutorial 20-01:  使用MSTest關於Assert的IsTrue, IsFalse, IsNull, IsNotNull, IsInstanceOfType, IsNotInstanceOfType
Tutorial 20-02:  使用NUnit關於Assert的IsTrue, IsFalse, IsNull, IsNotNull, IsInstanceOf, IsNotInstanceOf



T021_AssertSingleObject_AreEqual_AreSame_AreNotEqual_AreNotSame
T021_01_MSTest_Assert_ValueType_AreEqual_AreSame_AreNotEqual_AreNotSame
T021_02_MSTest_Assert_ComplexType_AreEqual_AreSame_AreNotEqual_AreNotSame
T021_03_NUnit_Assert_ValueType_AreEqual_AreSame_AreNotEqual_AreNotSame
T021_04_NUnit_Assert_ComplexType_AreEqual_AreSame_AreNotEqual_AreNotSame
----------------------
Tutorial 21講義:  關於AssertSingleObject, 包括AreEqual, AreSame, AreNotEqual, AreNotSame
Tutorial 21-01:  使用MSTest關於Assert Value Type, 包括AreEqual, AreSame, AreNotEqual, AreNotSame
Tutorial 21-02:  使用MSTest關於Assert ComplexType, 包括AreEqual, AreSame, AreNotEqual, AreNotSame
Tutorial 21-03:  使用NUnit關於Assert Value Type, 包括AreEqual, AreSame, AreNotEqual, AreNotSame
Tutorial 21-04:  使用NUnit關於Assert Complex Type, 包括AreEqual, AreSame, AreNotEqual, AreNotSame



T022_AssertCollection
T022_01_MSTest_Assert_ValueTypeCollection
T022_02_MSTest_Assert_ComplexTypeCollection
T022_03_NUnit_Assert_ValueTypeCollection
T022_04_NUnit_Assert_ComplexTypeCollection
----------------------
Tutorial 22講義:  關於Assert Collection
Tutorial 22-01:  使用MSTest關於Assert Value Type Collection
Tutorial 22-02:  使用MSTest關於Assert ComplexType Collection
Tutorial 22-03:  使用NUnit關於Assert Value Type Collection
Tutorial 22-04:  使用NUnit關於Assert Complex Type Collection



T023_AssertThatBasic
T023_01_MSTest_Assert_That
T023_02_NUnit_Assert_That_All
T023_03_NUnit_Assert_That_Not
T023_04_NUnit_Assert_That_Does
T023_05_NUnit_Assert_That_Has
T023_06_NUnit_Assert_That_Or_And
----------------------
Tutorial 23講義:  關於AssertThat基本語法
Tutorial 23-01:  關於MSTest的Assert.That
Tutorial 23-02:  關於NUnit的Assert.That的All
Tutorial 23-03:  關於NUnit的Assert.That的Not
Tutorial 23-04:  關於NUnit的Assert.That的Does
Tutorial 23-05:  關於NUnit的Assert.That的Has
Tutorial 23-06:  關於NUnit的Assert.That的Or和And



T024_AssertThatValueType
T024_01_NUnit_AssertThat_String
T024_02_NUnit_AssertThat_Numerical
T024_03_NUnit_AssertThat_Null
T024_04_NUnit_AssertThat_Bool
T024_05_NUnit_AssertThat_Range
----------------------
Tutorial 24講義:  關於AssertThat針對ValueType基本語法
Tutorial 24-01:  關於NUnit的Assert.That的String
Tutorial 24-02:  關於NUnit的Assert.That的Numerical
Tutorial 24-03:  關於NUnit的Assert.That的Null
Tutorial 24-04:  關於NUnit的Assert.That的Bool
Tutorial 24-05:  關於NUnit的Assert.That的Range




T025_AssertThat_SingleComplexType
----------------------
Tutorial 25講義:  關於AssertThat針對SingleComplexType基本語法




T026_AssertThat_Collection
T026_01_NUnit_AssertThat_StringArray
T026_02_NUnit_AssertThat_StringCollection
T026_03_NUnit_AssertThat_IntCollection
T026_04_NUnit_AssertThat_ComplexObjectsCollection_IComparer
T026_05_NUnit_AssertThat_ComplexObjectsCollection
----------------------
Tutorial 26講義:  關於AssertThat針對Collection基本語法
Tutorial 26-01:  關於NUnit的Assert.That的StringArray
Tutorial 26-02:  關於NUnit的Assert.That的StringCollection
Tutorial 26-03:  關於NUnit的Assert.That的IntCollection
Tutorial 26-04:  關於NUnit的Assert.That的ComplexObjectsCollection搭配IComparer
Tutorial 26-05:  關於NUnit的Assert.That的ComplexObjectsCollection




T027_NUnit_MultipleAssert
----------------------
Tutorial 27講義:  關於AssertThat針對MultipleAssert基本語法



T028_AssertException
T028_01_MSTest_ExpectedException
T028_02_NUnit_AssertThrows
----------------------
Tutorial 28講義:  關於Assert針對Exception的基本語法
Tutorial 28-01:  關於MSTest的ExpectedException
Tutorial 28-02:  關於NUnit的Assert.Throws




T029_ParameterizedTests_NUnit_TestCase
T029_01_NUnit_TestCase
T029_02_MSTest_BigTestMethod
----------------------
Tutorial 29講義:  關於ParameterizedTests, 介紹NUnit的TestCase基本語法
Tutorial 29-01:  關於NUnit的TestCase
Tutorial 29-02:  關於MSTest的BigTestMethod

Test Driven Development (TDD)
關於Test Driven Development (TDD)


T030_TDD_TestDrivenDevelopment_RedGreenRefactor
----------------------
Tutorial 30講義: 關於Test Driven Development (TDD), Red Green Refactor
Tutorial 30: 關於Test Driven Development (TDD), Red Green Refactor


T031_TDD_FibonacciSequence__Facking_Red_Green_TriangulationRefactor_Obvious
----------------------
Tutorial 31講義: 關於TDD的Facking, Red, Green, Triangulation Refactor, Obvious Implementation範例
Tutorial 31: 關於TDD的Facking, Red, Green, Triangulation Refactor, Obvious Implementation範例


Test episode 2: Mocking Framework, NSubstitute V.S Moq
測試第2篇: 隔離框架NSubstitute V.S Moq 


Test Double
關於Test Double


T032_TestDouble
T032_01_Introduction
T032_02_Testable
T032_03_Dummy
T032_04_Stub
T032_05_Spy
T032_06_Mock
T032_07_Fake
T032_08_UnTestable
T032_09_MockingFramework_NSubstitute
T032_10_MockingFramework_Moq
T032_11_CoverCoverage
----------------------
Tutorial 32講義: 關於TestDouble
Tutorial 32-01: 關於TestDouble
Tutorial 32-02: 可單元測試的code
Tutorial 32-03: 關於Dummy
Tutorial 32-04: 關於Stub
Tutorial 32-05: 關於Spy
Tutorial 32-06: 關於Mock
Tutorial 32-07: 關於Fake
Tutorial 32-08: 不能單元測試的code
Tutorial 32-09: 關於Mocking Framework, NSubstitute
Tutorial 32-10: 關於Mocking Framework, Moq
Tutorial 32-11: 關於CoverCoverage





T033_OveruseTestDouble_UnnecessaryCodeCoverage
T033_01_UnnecessaryCodeCoverage_Prepare
T033_02_UnnecessaryCodeCoverage
T033_03_OveruseTestDouble_Prepare
T033_04_OveruseTestDouble_Moq_Property_VoidMethod
T033_05_OveruseTestDouble_NSubstitute_Property_VoidMethod
----------------------
Tutorial 33講義: 關於過度使用Test Double和不必要的Code Coverage
Tutorial 33-01: 不必要的Code Coverage的範例準備
Tutorial 33-02: 不必要的Code Coverage範例
Tutorial 33-03: 過度使用Test Double的範例準備
Tutorial 33-04: 過度使用Test Double, 用Moq來實作Property和voidMethod
Tutorial 33-05: 過度使用Test Double, 用NSubstitute來實作Property
----------------------
Reference:
Moq void method
https://stackoverflow.com/questions/15805812/mock-an-update-method-returning-a-void-with-moq
https://stackoverflow.com/questions/15062403/moq-testing-void-method?rq=1
NSubstitute void method
https://nsubstitute.github.io/help/callbacks/
https://stackoverflow.com/questions/30329622/nsubstitute-mock-a-void-method-with-out-parameters

Mocking Framework
關於Mocking Framework


T034_Prepare
T034_01_Prepare_Interface
T034_02_Prepare_Class
----------------------
Tutorial 34講義: 關於Mocking Framework : 前置準備
Tutorial 34-01: 關於Mocking Framework : 前置準備,寫Interface
Tutorial 34-02: 關於Mocking Framework : 前置準備,寫Class



T035_MockMethodAndException
T035_01_MockOrdinaryMethod
T035_02_MockArgumentMatchingMethod
T035_02_01_MockArgumentMatchingMethod_Moq
T035_02_02_MockArgumentMatchingMethod_NSubstitute
T035_03_MockOutParameterMethod
T035_03_01_MockOutParameterMethod_Moq
T035_03_02_MockOutParameterMethod_NSubstitute
T035_04_MockRefParameterMethod
T035_04_01_MockRefParameterMethod_Moq
T035_04_02_MockRefParameterMethod_NSubstitute
T035_05_MockAnyValueMethod
T035_05_01_MockAnyValueMethod_Moq
T035_05_02_MockAnyValueMethod_NSubstitute
T035_06_MockMethodWithCallback
T035_06_01_MockMethodWithCallback_Moq
T035_06_02_MockMethodWithCallback_NSubstitute
T035_07_MockMethodThrowException
T035_07_01_MockMethodThrowException_Moq
T035_07_02_MockMethodThrowException_NSubstitute
----------------------
Tutorial 35講義: 關於Mock Method和Exception
Tutorial 35-01: 關於Mock普通的Method
Tutorial 35-02: 關於Mock有Argument Matching的Method
Tutorial 35-02-01: 關於Mock有Argument Matching的Method, 使用Moq
Tutorial 35-02-02: 關於Mock有Argument Matching的Method, 使用NSubstitute
Tutorial 35-03: 關於Mock有Out Parameter的Method
Tutorial 35-03-01: 關於Mock有Out Parameter的Method, 使用Moq
Tutorial 35-03-02: 關於Mock有Out Parameter的Method, 使用NSubstitute
Tutorial 35-04: 關於Mock有Ref Parameter的Method
Tutorial 35-04-01: 關於Mock有Ref Parameter的Method, 使用Moq
Tutorial 35-04-02: 關於Mock有Ref Parameter的Method, 使用NSubstitute
Tutorial 35-05: 關於Mock有Any Value Argument的Method
Tutorial 35-05-01: 關於Mock有Any Value Argument的Method, 使用Moq
Tutorial 35-05-02: 關於Mock有Any Value Argument的Method, 使用NSubstitute
Tutorial 35-06: 關於Mock有Callback的Method
Tutorial 35-06-01: 關於Mock有Callback的Method, 使用Moq
Tutorial 35-06-02: 關於Mock有Callback的Method, 使用NSubstitute
Tutorial 35-07: 關於Mock有Throw Exception的Method
Tutorial 35-07-01: 關於Mock有Throw Exception的Method , 使用Moq
Tutorial 35-07-02: 關於Mock有Throw Exception的Method, 使用NSubstitute


T036_MockPropertyAndVoidMethod
T036_01_MockPropertiesAndVoidMehtod_Moq
T036_02_MockPropertiesAndVoidMehtod_NSubstitute
T036_03_MockRecursiveProperties_Moq
T036_04_MockRecursiveProperties_NSubstitute
----------------------
Tutorial 36講義: 關於Mock Property和Void Method
Tutorial 36-01: 關於Mock普通的Property和Void Method, 使用Moq
Tutorial 36-02: 關於Mock普通的Property和Void Method, 使用NSubstitute
Tutorial 36-03: 關於Mock Property的property, 使用Moq
Tutorial 36-04: 關於Mock Property的property, 使用NSubstitute



T037_MockVerify
T037_01_MockVerify_Moq
T037_02_MockVerify_NSubstitute
T037_03_MockVerifyWithHelper_Moq
T037_04_MockVerifyWithHelper_NSubstitute
----------------------
Tutorial 37講義: 關於Mock的Verify
Tutorial 37-01: 關於Mock的Verify, 使用Moq
Tutorial 37-02: 關於Mock的Verify, 使用NSubstitute
Tutorial 37-03: 關於Mock的Verify搭配Helper, 使用Moq
Tutorial 37-04: 關於Mock的Verify搭配Helper, 使用NSubstitute



T038_MockWithCallback
T038_01_MockWithCallback_Moq
T038_02_MockWithCallback_NSubstitute
----------------------
Tutorial 38講義: 關於Mock的Callback
Tutorial 38-01: 關於Mock的Callback, 使用Moq
Tutorial 38-02: 關於Mock的Callback, 使用NSubstitute



T039_MockEvent
T039_01_TestRealEvent_Moq
T039_02_TestRealEvent_NSubstitute
T039_03_MockTheEvent_Moq
T039_04_MockTheEvent_NSubstitute
----------------------
Tutorial 39講義: 關於Mock Event
Tutorial 39-01: 關於Test真實的Event, 使用Moq
Tutorial 39-02: 關於Test真實的Event, 使用NSubstitute
Tutorial 39-03: 關於Mock的Event, 使用Moq
Tutorial 39-04: 關於Mock的Event, 使用NSubstitute


T040_MockBehavior
T040_01_DefaultValueMock_AutomaticRecursiveMocking
T040_02_MockRepository
T040_03_MockRepository_RecursiveMocking
----------------------
Tutorial 40講義: 關於Mock Behavior
Tutorial 40-01: 關於Default Value Mock和Automatic Recursive Mocking
Tutorial 40-02: 關於Mock Repository
Tutorial 40-03: 關於Mock Repository並且使用Recursive Mocking



T041_MockProtected
T041_01_TestBaseClassProtected
T041_02_TestBaseClassAbstractProtected
T041_03_TestSubClassProtected
T041_04_TestBaseClassPublic
----------------------
Tutorial 41講義: 關於Mock Protected Member
Tutorial 41-01: 關於Mock Base Class的Protected Member
Tutorial 41-02: 關於Mock Base Class的Protected Abstract Member
Tutorial 41-03: 關於Mock Sub Class的Protected Member
Tutorial 41-04: 關於Mock Base Class的Public Member


IEquatable<T>; IComparable<T>, IComparable ; IComparer, IComparer<T>, IEqualityComparer<T>
關於IEquatable<T>; IComparable<T>, IComparable ; IComparer, IComparer<T>, IEqualityComparer<T>


----------------------
Tutorial 42講義: 一些準備
Tutorial 42: 一些準備


T043_01_IEquatableT_GamerPowerA
T043_02_IEquatableT_GamerA
T043_03_Test_IEquatableT_NormalDependency_GamerAHasGamerPowerA
------
T043_04_IEquatableT_DependentEachOther_GamerPowerB
T043_05_IEquatableT_DependentEachOther_GamerB
T043_06_Test_IEquatableT_DependentEachOther_GamerBAandGamerPowerBHasEachOther
------
T043_07_IEquatableT_Summary
----------------------
Tutorial 43講義: 關於IEquatable<T>和Assert
Tutorial 43-01: 普通Dependency使用IEquatable<T>,實作GamerPowerA
Tutorial 43-01: 普通Dependency使用IEquatable<T>,實作GamerA
Tutorial 43-03: 測試普通Dependency使用IEquatable<T>, GamerA有GamerPowerA
------
Tutorial 43-04: 互相Dependency使用IEquatable<T>,實作GamerPowerB
Tutorial 43-05: 互相Dependency使用IEquatable<T>,實作GamerB
Tutorial 43-06: 測試互相Dependency使用IEquatable<T>, GamerB和GamerPowerB互相擁有
------
Tutorial 43-07: IEquatable<T>的Summary



T044_01_IEqualityComparerT_GamerPowerC
T044_02_IEqualityComparerT_GamerC
T044_03_Test_IEqualityComparerT_NormalDependency_GamerCHasGamerPowerC
------
T044_04_IEqualityComparerT_DependentEachOther_GamerPowerD
T044_05_IEqualityComparerT_DependentEachOther_GamerD
T044_06_Test_IEqualityComparerT_DependentEachOther_GamerDAandGamerPowerDHasEachOther
------
T044_07_IEqualityComparerT_Summary
----------------------
Tutorial 44講義: 關於IEqualityComparer<T>和Assert
Tutorial 44-01: 普通Dependency使用IEqualityComparer<T>,實作GamerPowerC
Tutorial 44-01: 普通Dependency使用IEqualityComparer<T>,實作GamerC
Tutorial 44-03: 測試普通DependencyIEqualityComparer<T>, GamerC有GamerPowerC
------
Tutorial 44-04: 互相Dependency使用IEqualityComparer<T>,實作GamerPowerD
Tutorial 44-05: 互相Dependency使用IEqualityComparer<T>,實作GamerD
Tutorial 44-06: 測試互相DependencyIEqualityComparer<T>, GamerD和GamerPowerD互相擁有
------
Tutorial 44-07: IEqualityComparer<T>的Summary



T045_01_IComparableT_IComparable_GamerPowerE
T045_02_IComparableT_IComparable_GamerE
T045_03_Test_IComparableT_IComparable_NormalDependency_GamerEHasGamerPowerE
------
T045_04_IComparableT_IComparable_DependentEachOther_GamerPowerF
T045_05_IComparableT_IComparable_DependentEachOther_GamerF
T045_06_Test_IComparableT_IComparable_DependentEachOther_GamerFAandGamerPowerFHasEachOther
------
T045_07_IEqualityComparerT_Summary
----------------------
Tutorial 45講義: 關於IComparable<T>和IComparable和Assert
Tutorial 45-01: 普通Dependency使用IComparable<T>和IComparable,實作GamerPowerE
Tutorial 45-01: 普通Dependency使用IComparable<T>和IComparable,實作GamerE
Tutorial 45-03: 測試普通DependencyIComparable<T>和IComparable, GamerE有GamerPowerE
------
Tutorial 45-04: 互相Dependency使用IComparable<T>和IComparable,實作GamerPowerF
Tutorial 45-05: 互相Dependency使用IComparable<T>和IComparable,實作GamerF
Tutorial 45-06: 測試互相DependencyIComparable<T>和IComparable, GamerF和GamerPowerF互相擁有
------
Tutorial 45-07: IComparable<T>和IComparable的Summary



T046_01_IComparerT_GamerPowerG
T046_02_IComparer_GamerPowerG
T046_03_IComparer_IComparerT_IEqualityComparerT_GamerPowerG
T046_04_IComparerT_GamerG
T046_05_IComparer_GamerG
T046_06_IComparer_IComparerT_IEqualityComparerT_GamerG
T046_07_Test_IComparer_IComparerT_IEqualityComparerT_NormalDependency_GamerGHasGamerPowerG
----------------------
Tutorial 46講義: 關於IComparer, IComparer<T>, IEqualityComparer<T>和Assert, 實作普通Dependency
Tutorial 46-01: 普通Dependency使用IComparer<T>,實作GamerPowerG
Tutorial 46-02: 普通Dependency使用IComparer,實作GamerPowerG
Tutorial 46-03: 普通Dependency使用IComparer, IComparer<T>, IEqualityComparer<T>,實作GamerPowerG
Tutorial 46-04: 普通Dependency使用IComparer<T>,實作GamerG
Tutorial 46-05: 普通Dependency使用IComparer,實作GamerG
Tutorial 46-06: 普通Dependency使用IComparer, IComparer<T>, IEqualityComparer<T>,實作GamerG
Tutorial 46-07: 測試普通IComparer和IComparer<T>和IEqualityComparer<T>, GamerG有GamerPowerG



T047_01_IComparer_IComparerT_IEqualityComparerT_DependentEachOther_GamerPowerH
T047_02_IComparer_IComparerT_IEqualityComparerT_DependentEachOther_GamerH
T047_03_Test_IComparer_IComparerT_IEqualityComparerT_DependentEachOther_GamerHHasGamerPowerH
T047_04_IComparer_IComparerT_IEqualityComparerT_Summary
----------------------
Tutorial 47講義: 關於IComparer, IComparer<T>, IEqualityComparer<T>和Assert, 實作互相Dependency
Tutorial 47-01: 互相Dependency使用IComparer, IComparer<T>, IEqualityComparer<T>,實作GamerPowerH
Tutorial 47-02: 互相Dependency使用IComparer, IComparer<T>, IEqualityComparer<T>,實作GamerH
Tutorial 47-03: 測試互相Dependency使用IComparer, IComparer<T>, IEqualityComparer<T>,GamerH和GamerPowerH互相擁有
Tutorial 47-04: IComparer, IComparer<T>, IEqualityComparer<T>的Summary


Test episode 3: Unit Test V.S. Integration Test
測試第3篇: 熟能生巧Unit Test V.S. Integration Test

TSQL & Unit of Work & Repository
TSQL和Unit of Work和Repository觀念解說


T048_UnitOfWork_Repository_Concept
T048_01to05_UnitOfWork_Repository_Concept
T048_06to08_UnitOfWork_Repository_Concept
----------------------
T048_UnitOfWork_Repository_Concept
T048_01_InstallPocoGenerator_CreateDatabase
--------
T048_02to05_All_Demo
T048_02_TSQL_CreateTable
T048_03_TSQL_Insert
T048_04_TSQL_DynamicTSQL
T048_05_TSQL_StoredProcedure
--------
T048_06_TSQL_All_Insert
--------
T048_07_TSQL_All_TestData
--------
T048_08_UnitOfWork_Repository_Concept
----------------------
Tutorial 48講義: 認識UnitOfWork和Repository觀念
Tutorial 48-01: 安裝PocoGenerator和建立資料庫
--------
Tutorial 48-02to05 了解TSQL, All_Demo
Tutorial 48-02: 了解TSQL, 建立Table
Tutorial 48-03: 了解TSQL, Insert資料
Tutorial 48-04: 了解TSQL, Dynamic TSQL
Tutorial 48-05: 了解TSQL, Stored Procedure
--------
Tutorial 48-06: 了解TSQL, 重置Insert Data
--------
Tutorial 48-07: 了解TSQL, 建立Test Database
--------
Tutorial 48-08: UnitOfWork和Repository觀念


Entity Framework Poco Generator
Entity Framework Poco Generator解說


T049_CreatePoco
T049_01_TSQL_CreateTable
T049_02_OnlineGameSolutionByPocoGenerator
T049_03_OnlineGameSolution
T049_04_ConnectionString
----------------------
Tutorial 49講義: 用PoCoGenerator來加速開發EF
Tutorial 49-01: 了解TSQL, 建立Table
Tutorial 49-02: 用PoCoGenerator製造OnlineGameTwo Solution
Tutorial 49-03: 準備OnlineGame Solution
Tutorial 49-04: 了解OnlineGame Solution在不同project的細節


DBContext & DBSet
DBContext和DBSet

T050_SpeedUpByPoCo_Table
T050_01_DomainEntity
T050_02_EntityConfiguration
T050_03_DbContext
T009_04_MigrationInit
T050_05_UiConsoleApp_StaticMethod
-----------
T050_06_UiConsoleApp_DbContextWay_Find
T050_07_UiConsoleApp_DbContextWay_Add
T050_08_UiConsoleApp_DbContextWay_AddRange
T050_09_UiConsoleApp_DbContextWay_RemoveRange
T050_10_UiConsoleApp_DbContextWay_Remove
----------------------
Tutorial 50講義: PoCoGenerator加速開發EF的Table
Tutorial 50-01: 理解Domain Entity
Tutorial 50-02: 理解Entity Configuration
Tutorial 50-03: 理解DbContext
Tutorial 50-04: 製作Migration Init
Tutorial 50-05: UiConsoleApp中的一些StaticMethod
-----------
Tutorial 50-06: 使用EF去跑Find
Tutorial 50-07: 使用EF去跑Add
Tutorial 50-08: 使用EF去跑AddRange
Tutorial 50-09: 使用EF去跑RemoveRange
Tutorial 50-10: 使用EF去跑Remove



T051_SpeedUpByPoCo_StoredProcedure
T051_SpeedUpByPoCo_StoredProcedure
T051_01_PoCoGenerator_StoredProcedure
T051_02_PoCoGenerator_ToRealProject
T051_03_PrintMethod
-----------
T051_04_DbContextWay_SpSearchGamerAndDetail
T051_05_DbContextWay_SpInsertGamerAndDetail
T051_06_DbContextWay_SpUpdateGamerAndDetail
T051_07_DbContextWay_SpDeleteGamerAndDetail
-----------
T051_08_MigrationStoredProcedure
T051_09_TestConnectionString
----------------------
Tutorial 51講義: PoCoGenerator加速開發EF的Stored Procedure
Tutorial 51-01: Poco Generator製造EF Code First程式碼呼叫Stored Procedure
Tutorial 51-02: 擷取必要的EF Code First程式碼到real project
Tutorial 51-03: 製作Print Method
-----------
Tutorial 51-04: 使用EF去跑Stored Procedure, SpSearchGamerAndDetail
Tutorial 51-05: 使用EF去跑Stored Procedure, SpInsertGamerAndDetail
Tutorial 51-06: 使用EF去跑Stored Procedure, SpUpdateGamerAndDetail
Tutorial 51-07: 使用EF去跑Stored Procedure, SpDeleteGamerAndDetail
-----------
Tutorial 51-08: 理解Migration Stored Procedure
Tutorial 51-09: 理解Connection String在各個Project的細節


Unit of Work & Repository
Unit of Work和Repository



T052_EntityValidator
T052_01_GamerDetailValidator
T052_02_GamerValidator
----------------------
Tutorial 52講義: Entity Validator
Tutorial 52-01: 關於Gamer Detail Validator
Tutorial 52-02: 關於Gamer Validator


T053_GenericRepository
T053_01_DataRepository_GenericRepositoryInterface_IRepository
T053_02_DataRepository_GenericRepositoryInterface_IOnePkWithAllOthersRepository
T053_03_DataRepository_GenericRepositoryInterface_IGetWithAllOthersRepository
T053_04_DataRepository_GenericRepositoryInterface_IGetAllWithAllOthersRepository
T053_05_DataRepository_GenericRepositoryInterface_IAddRepository
T053_06_DataRepository_GenericRepositoryInterface_IDeleteRepository
T053_07_DataRepository_GenericRepositoryInterface_IUpdateRepository
T053_08_DataRepository_GenericRepository_Repository
T053_09_DataRepository_GenericRepository_AddRepository
T053_10_DataRepository_GenericRepository_OnePkRepository
----------------------
Tutorial 53講義: Generic Repository
Tutorial 53-01: 理解Data Repository層的Generic Repository Interface的IRepository
Tutorial 53-02: 理解Data Repository層的Generic Repository Interface的IOnePkWithAllOthersRepository
Tutorial 53-03: 理解Data Repository層的Generic Repository Interface的IGetWithAllOthersRepository
Tutorial 53-04: 理解Data Repository層的Generic Repository Interface的IGetAllWithAllOthersRepository
Tutorial 53-05: 理解Data Repository層的Generic Repository Interface的IAddRepository
Tutorial 53-06: 理解Data Repository層的Generic Repository Interface的IDeleteRepository
Tutorial 53-07: 理解Data Repository層的Generic Repository InterfaceIUpdateRepository
Tutorial 53-08: 理解Data Repository層的Generic Repository的Repository
Tutorial 53-09: 理解Data Repository層的Generic Repository的AddRepository
Tutorial 53-10: 理解Data Repository層的Generic Repository的OnePkRepository



T054_DataRepository_EntityRepository_UnitOfWork
T054_01_GamerDetailRepository
T054_02_GamerRepository
T054_03_IUnitOfWork
T054_04_UnitOfWork
----------------------
Tutorial 54講義: DataRepository層的EntityRepository和UnitOfWork
Tutorial 54-01:  關於GamerDetailRepository
Tutorial 54-02: 關於GamerRepository
Tutorial 54-03: 關於IUnitOfWork
Tutorial 54-04: 關於UnitOfWork


T055_DataRepositoryWay_OnePk
T055_01_OnePk_UnitOfWork_Add
T055_02_OnePk_UnitOfWork_AddRange
T055_03_OnePk_UnitOfWork_Update
----------------------
Tutorial 55講義: 使用Data Repository層的OnePk Repository
Tutorial 55-01:  針對OnePk, 使用Unit of Work的Add
Tutorial 55-02:  針對OnePk,使用Unit of Work的AddRange
Tutorial 55-03:  針對OnePk,使用Unit of Work的Update


T056_DataRepositoryWay_StoredProcedure
T056_01_DataRepositoryWay_UnitOfWork_StoredProcedure_SpSearchGamerAndDetail
T056_02_DataRepositoryWay_UnitOfWork_StoredProcedure_SpInsertGamerAndDetail
T056_03_DataRepositoryWay_UnitOfWork_StoredProcedure_SpUpdateGamerAndDetail
T056_04_DataRepositoryWay_UnitOfWork_StoredProcedure_SpDeleteGamerAndDetail
----------------------
Tutorial 56講義: 使用Data Repository層的UnitOfWork的Stored Procedure
Tutorial 56-01:  使用Unit of Work呼叫StoredProcedure的SpSearchGamerAndDetail
Tutorial 56-02:  使用Unit of Work呼叫StoredProcedure的SpInsertGamerAndDetail
Tutorial 56-03:  使用Unit of Work呼叫StoredProcedure的SpUpdateGamerAndDetail
Tutorial 56-04:  使用Unit of Work呼叫StoredProcedure的SpDeleteGamerAndDetail

Fake and Comparer
Fake和Comparer


T057_FakeDbContext
Tutorial 57講義: 使用FakeDbContext
Tutorial 57-01: 使用FakeDbContext



T058_Equal_Compare
T058_01_GamerDetailComparer
T058_02_GamerComparer
T058_03_SpSearchGamerAndDetailReturnModelComparer
----------------------
Tutorial 58講義: 關於Equal和Compare
Tutorial 58-01: 使用GamerDetailComparer
Tutorial 58-02: 使用GamerComparer
Tutorial 58-03: 使用SpSearchGamerAndDetailReturnModelComparer


Unit Test By NUnit
使用NUnit做單元測試




T059_NUnit_Equal_Compare
T059_01_NUnit_GamerDetailComparerTest
T059_02_NUnit_GamerComparerTest
T059_03_NUnit_SpSearchGamerAndDetailReturnModelComparerTest
----------------------
Tutorial 59講義: 關於NUnit測試Equal和Compare
Tutorial 59-01: 使用NUnit測試GamerDetailComparerTest
Tutorial 59-02: 使用NUnit測試GamerComparerTest
Tutorial 59-03: 使用NUnit測試SpSearchGamerAndDetailReturnModelComparerTest
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure



T060_NUnit_TestDataNUnitRepository_EntityValidator
T060_01_NUnit_TestDataNUnitRepository_GamerDetailValidator
T060_02_NUnit_TestDataNUnitRepository_GamerValidator
----------------------
Tutorial 60講義: 使用NUnit測試Data Repository層的EntityValidator
Tutorial 60-01: 使用NUnit測試Data Repository層的GamerDetailValidator
Tutorial 60-02: 使用NUnit測試Data Repository層的GamerValidator
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure



T061_NUnit_TestDataNUnitRepository_EntityRepository
T061_01_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_TestInitializeAndCleanUp
T061_02_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_RepositoryGet_GetAll_Find
T061_03_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_RepositoryGet_SingleOrDefault
T061_04_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_OnePkRepositoryGet
T061_05_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_EntityRepositoryGet
T061_06_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_EntityRepositoryAddAndRemove
T061_07_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_EntityRepositoryAddRangAndRemoveRange
T061_08_NUnit_TestDataNUnitRepository_GamerDetailRepositoryTest_EntityRepositoryUpdate
T061_09_NUnit_ConceptRevise
----------
T061_10_NUnit_TestDataNUnitRepository_GamerRepositoryTest_TestInitializeAndCleanUp
T061_11_NUnit_TestDataNUnitRepository_GamerRepositoryTest_RepositoryGet_GetAll_Find
T061_12_NUnit_TestDataNUnitRepository_GamerRepositoryTest_RepositoryGet_SingleOrDefault
T061_13_NUnit_TestDataNUnitRepository_GamerRepositoryTest_OnePkRepositoryGet
T061_14_NUnit_TestDataNUnitRepository_GamerRepositoryTest_EntityRepositoryGet
T061_15_NUnit_TestDataNUnitRepository_GamerRepositoryTest_EntityRepositoryAddAndRemove
T061_16_NUnit_TestDataNUnitRepository_GamerRepositoryTest_EntityRepositoryAddRangAndRemoveRange
T061_17_NUnit_TestDataNUnitRepository_GamerRepositoryTest_EntityRepositoryUpdate
----------------------
Tutorial 61講義: NUnit的Unit Test測試TestDataNUnitRepository的EntityRepository
Tutorial 61-01: 使用NUnit測試GamerDetailRepositoryTest的TestInitialize和CleanUp
Tutorial 61-02: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的GetAll和Find
Tutorial 61-03: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的SingleOrDefault
Tutorial 61-04: 使用NUnit測試GamerDetailRepositoryTest的OnePkRepositoryGet
Tutorial 61-05: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryGet
Tutorial 61-06: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的Add和Remove
Tutorial 61-07: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的AddRange和RemoveRange
Tutorial 61-08: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryUpdate
Tutorial 61-09: 使用NUnit測試的觀念複習
----------
Tutorial 61-10: 使用NUnit測試GamerRepositoryTest的TestInitialize和CleanUp
Tutorial 61-11: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的GetAll和Find
Tutorial 61-12: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的SingleOrDefault
Tutorial 61-13: 使用NUnit測試GamerRepositoryTestt的OnePkRepositoryGet
Tutorial 61-14: 使用NUnit測試GamerRepositoryTest的EntityRepositoryGet
Tutorial 61-15: 使用NUnit測試GamerRepositoryTest的EntityRepository的Add和Remove
Tutorial 61-16: 使用NUnit測試GamerRepositoryTest的EntityRepository的AddRange和RemoveRange
Tutorial 61-17: 使用NUnit測試GamerRepositoryTest的EntityRepositoryUpdate
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure


Integration Test By NUnit
使用NUnit做整合測試



T062_NUnit_TestDataNUnitIntegration_EntityRepository
T062_01_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_TestInitializeAndCleanUp
T062_02_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_RepositoryGet_GetAll_Find_SingleOrDefault
T062_03_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_OnePkRepositoryGet
T062_04_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_EntityRepositoryGet
T062_05_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_EntityRepositoryAdd_AddRang_Remove_RemoveRange
T062_06_NUnit_TestDataNUnitIntegration_GamerDetailRepositoryTest_EntityRepositoryUpdate
----------
T062_07_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_TestInitializeAndCleanUp
T062_08_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_RepositoryGet_GetAll_Find_SingleOrDefault
T062_09_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_OnePkRepositoryGet
T062_10_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_EntityRepositoryGet
T062_11_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_EntityRepositoryAdd_AddRang_Remove_RemoveRange
T062_12_NUnit_TestDataNUnitIntegration_GamerRepositoryTest_EntityRepositoryUpdate
----------
T062_13_TestOrder
----------------------
Tutorial 62講義: NUnit的Unit Test測試TestDataNUnitIntegration的EntityRepository
Tutorial 62-01: 使用NUnit測試GamerDetailRepositoryTest的TestInitialize和CleanUp
Tutorial 62-02: 使用NUnit測試GamerDetailRepositoryTest的RepositoryGet中的GetAll和Find和SingleOrDefault
Tutorial 62-03: 使用NUnit測試GamerDetailRepositoryTest的OnePkRepositoryGet
Tutorial 62-04: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryGet
Tutorial 62-05: 使用NUnit測試GamerDetailRepositoryTest的EntityRepository的Add和AddRange和Remove和RemoveRange
Tutorial 62-06: 使用NUnit測試GamerDetailRepositoryTest的EntityRepositoryUpdate
----------
Tutorial 62-07: 使用NUnit測試GamerRepositoryTest的TestInitialize和CleanUp
Tutorial 62-08: 使用NUnit測試GamerRepositoryTest的RepositoryGet中的GetAll和Find和SingleOrDefault
Tutorial 62-09: 使用NUnit測試GamerRepositoryTestt的OnePkRepositoryGet
Tutorial 62-10: 使用NUnit測試GamerRepositoryTest的EntityRepositoryGet
Tutorial 62-11: 使用NUnit測試GamerRepositoryTest的EntityRepository的Add和AddRange和Remove和RemoveRange
Tutorial 62-12: 使用NUnit測試GamerRepositoryTest的EntityRepositoryUpdate
----------
Tutorial 62-13: 關於TestOrder
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure




T063_NUnit_TestDataNUnitIntegration_StoredProcedure
T063_01_NUNit_SP_TestInitialize_TestCleanup
T063_02_NUNit_SpSearchGamerAndDetailReturnModel
T063_03_NUNit_SpInsertGamerAndDetail_SpUpdateGamerAndDetail_SpDeleteGamerAndDetail
T063_04_NUNit_SpDeleteGamerAndDetail
----------------------
Tutorial 63講義: NUnit的Integration Test測試TestDataNUnitIntegration的Stored Procedure
Tutorial 63-01: 使用NUNit測試Stored Procedure, 討論TestInitialize和TestCleanup
Tutorial 63-02: 使用NUNit測試SpSearchGamerAndDetailReturnModel
Tutorial 63-03: 使用NUNit測試SpInsertGamerAndDetail, SpUpdateGamerAndDetail, SpDeleteGamerAndDetail
Tutorial 63-04: 使用NUNit測試SpDeleteGamerAndDetail
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure


Unit Test By MSTest
使用MSTest做單元測試



T064_MSTest_Equal_Compare
T064_01_MSTest_GamerDetailComparerTest
T064_02_MSTest_GamerComparerTest
T064_03_MSTest_SpSearchGamerAndDetailReturnModelComparerTest
----------------------
Tutorial 64講義: 關於MSTest測試Equal和Compare
Tutorial 64-01: 使用MSTest測試GamerDetailComparerTest
Tutorial 64-02: 使用MSTest測試GamerComparerTest
Tutorial 64-03: 使用MSTest測試SpSearchGamerAndDetailReturnModelComparerTest
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure



T065_MSTest_TestDataRepository_EntityValidator
T065_01_MSTest_TestDataRepository_GamerDetailValidator
T065_02_MSTest_TestDataRepository_GamerValidator
----------------------
Tutorial 65講義: 使用MSTest測試Data Repository層的EntityValidator
Tutorial 65-01: 使用MSTest測試Data Repository層的GamerDetailValidator
Tutorial 65-02: 使用MSTest測試Data Repository層的GamerValidator
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure



T066_MSTest_TestDataRepository_EntityRepository
T066_01_MSTest_TestDataRepository_GamerDetailRepositoryTest
T066_02_MSTest_TestDataRepository_GamerRepositoryTest
----------------------
Tutorial 66講義: MSTest的Unit Test測試TestDataRepository的EntityRepository
Tutorial 66-01: 使用MSTest測試TestDataRepository的GamerDetailRepositoryTest
Tutorial 66-02: 使用MSTest測試TestDataRepository的GamerRepositoryTest
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure


Integration Test By MSTest
使用MSTest做整合測試



T067_MSTest_TestDataIntegration_EntityRepository
T067_01_MSTest_TestDataIntegration_GamerDetailRepositoryTest
T067_02_MSTest_TestDataIntegration_GamerRepositoryTest
----------------------
Tutorial 67講義: MSTest的Integration Test測試TestDataIntegration的EntityRepository
Tutorial 67-01: 使用MSTest測試TestDataIntegration的GamerDetailRepositoryTest
Tutorial 67-02: 使用MSTest測試TestDataIntegration的GamerRepositoryTest
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure



T068_MSTest_TestDataIntegration_StoredProcedure
----------------------
Tutorial 68講義: MSTest的Integration Test測試TestDataIntegration的Stored Procedure
Tutorial 68: MSTest的Integration Test測試TestDataIntegration的Stored Procedure
----------------------
*****
Please note T059 to T063 is using NUnit
T059_NUnit_Equal_Compare
T060_NUnit_TestDataNUnitRepository_EntityValidator
T061_NUnit_TestDataNUnitRepository_EntityRepository
T062_NUnit_TestDataNUnitIntegration_EntityRepository
T063_NUnit_TestDataNUnitIntegration_StoredProcedure
-->
Please note T064 to T068 is using MSTest
T064_MSTest_Equal_Compare
T065_MSTest_TestDataRepository_EntityValidator
T066_MSTest_TestDataRepository_EntityRepository
T067_MSTest_TestDataIntegration_EntityRepository
T068_MSTest_TestDataIntegration_StoredProcedure


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



T069_MockingFramework_Moq_NSubstitute
T069_01_IGamer_IDetailGamer_LuckyReward
T069_02_MoqWithNUnit
T069_03_MoqWithMSTest
T069_04_NSubstituteWithNUnit
T069_05_NSubstituteWithMSTest
T069_06_Conclusion
----------------------
Tutorial 69講義: Mocking Framework隔離框架 Moq V.S. NSubstitute
Tutorial 69-01: 建立IGamer和IDetailGamer Interface,並且寫LuckyReward邏輯
Tutorial 69-02: 使用Moq搭配NUnit
Tutorial 69-03: 使用Moq搭配MSTest
Tutorial 69-04: 使用NSubstitute搭配NUnit
Tutorial 69-05: 使用NSubstitute搭配MSTest
Tutorial 69-06: 結論


Test episode 4: Open Source Libraries.  FluentAssertions Part1
測試第4篇: 斷言神器FluentAssertions Part1

Single Assertion

Fluent Assertions Getting Start
Fluent Assertions初步了解 


T070_FluentAssertionsIntroduction
T070_01_FluentAssertionsIntroduction
T070_02_FluentAssertionsSampleSolution
----------------------
Tutorial 70講義: FluentAssertions的介紹
Tutorial 70-01: FluentAssertions的介紹
Tutorial 70-02: 建立Fluent Assertion的Sample Solution



T071_BasicAssertions
T071_01_Prepare
T071_02_ReviseAAA
T071_03_WhyFluentAssertions
T071_04_GettingStarted
T071_05_WhatWillWeDiscuss
----------------------
Tutorial 71講義:  入門FluentAssertions
Tutorial 71-01:  準備工作
Tutorial 71-02:  複習AAA
Tutorial 71-03:  為何使用FluentAssertions
Tutorial 71-04:  入門FluentAssertions
Tutorial 71-05:  我們剩下的Tutorial會討論什麼


Fluent Assertions Assertion Scope
Fluent Assertions的Assertion Scope



T072_AssertionScope
T072_01_TestInitialize_TestCleanup
T072_02_FluentAssertion_NUnit_AssertionScope
T072_03_FluentAssertion_MSTest_AssertionScope
----------------------
Tutorial 72講義:  關於AssertionScope
Tutorial 72-01:  複習TestInitialize和TestCleanup
Tutorial 72-02:  在FluentAssertion搭配NUnit使用AssertionScope
Tutorial 72-03:  在FluentAssertion搭配MSTest使用AssertionScope


Fluent Assertions For String Value
Fluent Assertions測試String Value


T073_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
T073A_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
T073B_StringAssert_StartsWith_EndsWith_Contains_Matches_DoesNotMatch
T073_01_Revise_WhatToLearn
T073_02_NUnit_SetUp_TearDown
T073_03_MSTest_TestInitialize_TestCleanup
T073_04_NUnit_EqualTest
T073_05_MSTest_EqualTest
T073_06_NUnit_StartsWithTest
T073_07_MSTest_StartsWithTest
T073_08_NUnit_EndsWithTest
T073_09_MSTest_EndsWithTest
T073_10_NUnit_ContainsTest
T073_11_MSTest_ContainsTest
T073_12_NUnit_MatchesTest
T073_13_MSTest_MatchesTest
T073_14_NUnit_DoesNotMatchTest
T073_15_MSTest_DoesNotMatchTest
T073_16_FluentAssertions_BeNull_BeEmpty_BeNullOrWhiteSpace_HaveLength
T073_17_FluentAssertions_Be_BeEquivalentTo
T073_18_FluentAssertions_BeOneOf_Contain_ContainAll_ContainAny_ContainEquivalentOf
T073_19_FluentAssertions_StartWith_StartWithEquivalent
T073_20_FluentAssertions_EndWith_EndWithEquivalent
T073_21_FluentAssertions_Match_MatchEquivalentOf_MatchRegex
----------------------
Tutorial 73講義:  關於StringAssert底下的StartsWith, EndsWith, Contains, Matches, DoesNotMatch
Tutorial 73-01:  複習和介紹
Tutorial 73-02:  使用NUnit, 討論SetUp和TearDown
Tutorial 73-03:  使用MSTest, 討論TestInitialize和TestCleanup
Tutorial 73-04:  使用NUnit, 討論EqualTest
Tutorial 73-05:  使用MSTest, 討論EqualTest
Tutorial 73-06:  使用NUnit, 討論StartsWithTest
Tutorial 73-07:  使用MSTest, 討論StartsWithTest
Tutorial 73-08:  使用NUnit, 討論EndsWithTest
Tutorial 73-09:  使用MSTest, 討論EndsWithTest
Tutorial 73-10:  使用NUnit, 討論ContainsTest
Tutorial 73-11:  使用MSTest, 討論ContainsTest
Tutorial 73-12:  使用NUnit, 討論MatchesTest
Tutorial 73-13:  使用MSTest, 討論MatchesTest
Tutorial 73-14:  使用NUnit, 討論DoesNotMatchTest
Tutorial 73-15:  使用MSTest, 討論DoesNotMatchTest
Tutorial 73-16:  使用FluentAssertions, 討論BeNull, BeEmpty, BeNullOrWhiteSpace, HaveLength
Tutorial 73-17:  使用FluentAssertions, 討論Be, BeEquivalentTo
Tutorial 73-18:  使用FluentAssertions, 討論BeOneOf, Contain, ContainAll, ContainAny, ContainEquivalentOf
Tutorial 73-19:  使用FluentAssertions, 討論StartWith, StartWithEquivalent
Tutorial 73-20:  使用FluentAssertions, 討論EndWith, EndWithEquivalent
Tutorial 73-21:  使用FluentAssertions, 討論Match, MatchEquivalentOf, MatchRegex


Fluent Assertions For Number Value
Fluent Assertions測試Number Value


T074_NumericIComparableAssertion
T074_01to06_FluentAssertions_Number_FailureSuccessMessage
T074_07to16_FluentAssertions_Int
T074_17to26_FluentAssertions_Decimal
T074_27to36_FluentAssertions_Double
T074_37to46_FluentAssertions_Float
T074_47to56_FluentAssertions_Byte
T074_57to59_FluentAssertions_Number_InfiniteValue
-----------------------------
T074_01_NUnit_SetUp_TearDown
---------------
T074_02_FluentAssertions_IntValue_FailureSuccessMessage
T074_03_FluentAssertions_Decimal_FailureSuccessMessage
T074_04_FluentAssertions_Double_FailureSuccessMessage
T074_05_FluentAssertions_Float_FailureSuccessMessage
T074_06_FluentAssertions_byte_FailureSuccessMessage
---------------
T074_07_FluentAssertions_Int_BeGreaterOrEqualTo
T074_08_FluentAssertions_Int_BeGreaterThan
T074_09_FluentAssertions_Int_BeLessOrEqualTo
T074_10_FluentAssertions_Int_BeLessThan
T074_11_FluentAssertions_Int_BePositive_BeNegative
T074_12_FluentAssertions_Int_Be_NotBe
T074_13_FluentAssertions_Int_BeInRange_NotBeInRange
T074_14_FluentAssertions_Int_Match
T074_15_FluentAssertions_Int_BeOneOf
T074_16_FluentAssertions_Int_BeApproximately
---------------
T074_17_FluentAssertions_Decimal_BeGreaterOrEqualTo
T074_18_FluentAssertions_Decimal_BeGreaterThan
T074_19_FluentAssertions_Decimal_BeLessOrEqualTo
T074_20_FluentAssertions_Decimal_BeLessThan
T074_21_FluentAssertions_Decimal_BePositive_BeNegative
T074_22_FluentAssertions_Decimal_Be_NotBe
T074_23_FluentAssertions_Decimal_BeInRange_NotBeInRange
T074_24_FluentAssertions_Decimal_Match
T074_25_FluentAssertions_Decimal_BeOneOf
T074_26_FluentAssertions_Decimal_BeApproximately
---------------
T074_27_FluentAssertions_Double_BeGreaterOrEqualTo
T074_28_FluentAssertions_Double_BeGreaterThan
T074_29_FluentAssertions_Double_BeLessOrEqualTo
T074_30_FluentAssertions_Double_BeLessThan
T074_31_FluentAssertions_Double_BePositive_BeNegative
T074_32_FluentAssertions_Double_Be_NotBe
T074_33_FluentAssertions_Double_BeInRange_NotBeInRange
T074_34_FluentAssertions_Double_Match
T074_35_FluentAssertions_Double_BeOneOf
T074_36_FluentAssertions_Double_BeApproximately
---------------
T074_37_FluentAssertions_Float_BeGreaterOrEqualTo
T074_38_FluentAssertions_Float_BeGreaterThan
T074_39_FluentAssertions_Float_BeLessOrEqualTo
T074_40_FluentAssertions_Float_BeLessThan
T074_41_FluentAssertions_Float_BePositive_BeNegative
T074_42_FluentAssertions_Float_Be_NotBe
T074_43_FluentAssertions_Float_BeInRange_NotBeInRange
T074_44_FluentAssertions_Float_Match
T074_45_FluentAssertions_Float_BeOneOf
T074_46_FluentAssertions_Float_BeApproximately
---------------
T074_47_FluentAssertions_Byte_BeGreaterOrEqualTo
T074_48_FluentAssertions_Byte_BeGreaterThan
T074_49_FluentAssertions_Byte_BeLessOrEqualTo
T074_50_FluentAssertions_Byte_BeLessThan
T074_51_FluentAssertions_Byte_BePositive_BeNegative
T074_52_FluentAssertions_Byte_Be_NotBe
T074_53_FluentAssertions_Byte_BeInRange_NotBeInRange
T074_54_FluentAssertions_Byte_Match
T074_55_FluentAssertions_Byte_BeOneOf
T074_56_FluentAssertions_Byte_BeApproximately
---------------
T074_57_FluentAssertions_Decimal_InfiniteValue
T074_58_FluentAssertions_Double_InfiniteValue
T074_59_FluentAssertions_Float_InfiniteValue
-----------------------------
Tutorial 74講義:  關於FluentAssertion底下的NumericIAssertion
----------------------
Tutorial 74-01to06: 使用FluentAssertions討論Number的FailureSuccessMessage
Tutorial 74-07to16: 使用FluentAssertions討論Int
Tutorial 74-17to26: 使用FluentAssertions討論Decimal
Tutorial 74-27to36: 使用FluentAssertions討論Double
Tutorial 74-37to46: 使用FluentAssertions討論Float
Tutorial 74-47to56: 使用FluentAssertions討論Byte
Tutorial 74-57to59: 使用FluentAssertions討論Number的InfiniteValue
----------------------
Tutorial 74-01:  使用NUnit, 討論SetUp和TearDown
---------------
Tutorial 74-02:  使用FluentAssertions, 討論IntValue的FailureSuccessMessage
Tutorial 74-03:  使用FluentAssertions, 討論Decimal的FailureSuccessMessage
Tutorial 74-04:  使用FluentAssertions, 討論Double的FailureSuccessMessage
Tutorial 74-05:  使用FluentAssertions, 討論Float的FailureSuccessMessage
Tutorial 74-06:  使用FluentAssertions, 討論byte的FailureSuccessMessage
---------------
Tutorial 74-07:  使用FluentAssertions, 討論Int的BeGreaterOrEqualTo
Tutorial 74-08:  使用FluentAssertions, 討論Int的BeGreaterThan
Tutorial 74-09:  使用FluentAssertions, 討論Int的BeLessOrEqualTo
Tutorial 74-10:  使用FluentAssertions, 討論Int的BeLessThan
Tutorial 74-11:  使用FluentAssertions, 討論Int的BePositive, BeNegative
Tutorial 74-12:  使用FluentAssertions, 討論Int的Be, NotBe
Tutorial 74-13:  使用FluentAssertions, 討論Int的BeInRange, NotBeInRange(包含頭尾)
Tutorial 74-14:  使用FluentAssertions, 討論Int的Match
Tutorial 74-15:  使用FluentAssertions, 討論Int的BeOneOf
Tutorial 74-16:  使用FluentAssertions, 討論Int的BeApproximately
---------------
Tutorial 74-17:  使用FluentAssertions, 討論Decimal的BeGreaterOrEqualTo
Tutorial 74-18:  使用FluentAssertions, 討論Decimal的BeGreaterThan
Tutorial 74-19:  使用FluentAssertions, 討論Decimal的BeLessOrEqualTo
Tutorial 74-20:  使用FluentAssertions, 討論Decimal的BeLessThan
Tutorial 74-21:  使用FluentAssertions, 討論Decimal的BePositive, BeNegative
Tutorial 74-22:  使用FluentAssertions, 討論Decimal的Be, NotBe
Tutorial 74-23:  使用FluentAssertions, 討論Decimal的BeInRange, NotBeInRange(包含頭尾)
Tutorial 74-24:  使用FluentAssertions, 討論Decimal的Match
Tutorial 74-25:  使用FluentAssertions, 討論Decimal的BeOneOf
Tutorial 74-26:  使用FluentAssertions, 討論Decimal的BeApproximately
---------------
Tutorial 74-27:  使用FluentAssertions, 討論Double的BeGreaterOrEqualTo
Tutorial 74-28:  使用FluentAssertions, 討論Double的BeGreaterThan
Tutorial 74-29:  使用FluentAssertions, 討論Double的BeLessOrEqualTo
Tutorial 74-30:  使用FluentAssertions, 討論Double的BeLessThan
Tutorial 74-31:  使用FluentAssertions, 討論Double的BePositive, BeNegative
Tutorial 74-32:  使用FluentAssertions, 討論Double的Be, NotBe
Tutorial 74-33:  使用FluentAssertions, 討論Double的BeInRange, NotBeInRange(包含頭尾)
Tutorial 74-34:  使用FluentAssertions, 討論Double的Match
Tutorial 74-35:  使用FluentAssertions, 討論Double的BeOneOf
Tutorial 74-36:  使用FluentAssertions, 討論Double的BeApproximately
---------------
Tutorial 74-37:  使用FluentAssertions, 討論Float的BeGreaterOrEqualTo
Tutorial 74-38:  使用FluentAssertions, 討論Float的BeGreaterThan
Tutorial 74-39:  使用FluentAssertions, 討論Float的BeLessOrEqualTo
Tutorial 74-40:  使用FluentAssertions, 討論Float的BeLessThan
Tutorial 74-41:  使用FluentAssertions, 討論Float的BePositive, BeNegative
Tutorial 74-42:  使用FluentAssertions, 討論Float的Be, NotBe
Tutorial 74-43:  使用FluentAssertions, 討論Float的BeInRange, NotBeInRange(包含頭尾)
Tutorial 74-44:  使用FluentAssertions, 討論Float的Match
Tutorial 74-45:  使用FluentAssertions, 討論Float的BeOneOf
Tutorial 74-46:  使用FluentAssertions, 討論Float的BeApproximately
---------------
Tutorial 74-47:  使用FluentAssertions, 討論Byte的BeGreaterOrEqualTo
Tutorial 74-48:  使用FluentAssertions, 討論Byte的BeGreaterThan
Tutorial 74-49:  使用FluentAssertions, 討論Byte的BeLessOrEqualTo
Tutorial 74-50:  使用FluentAssertions, 討論Byte的BeLessThan
Tutorial 74-51:  使用FluentAssertions, 討論Byte的BePositive, BeNegative
Tutorial 74-52:  使用FluentAssertions, 討論Byte的Be, NotBe
Tutorial 74-53:  使用FluentAssertions, 討論Byte的BeInRange, NotBeInRange(包含頭尾)
Tutorial 74-54:  使用FluentAssertions, 討論Byte的Match
Tutorial 74-55:  使用FluentAssertions, 討論Byte的BeOneOf
Tutorial 74-56:  使用FluentAssertions, 討論Byte的BeApproximately
---------------
Tutorial 74-57:  使用FluentAssertions, 討論Decimal的InfiniteValue
Tutorial 74-58:  使用FluentAssertions, 討論Double的InfiniteValue
Tutorial 74-59:  使用FluentAssertions, 討論Float的InfiniteValue
-----------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output


Fluent Assertions For DateTime Value
Fluent Assertions測試DateTime Value


T075_DateTimeAssertion
-----------------------
T075_01_NUnit_DateTimeAssertion
T075_02_MSTest_DateTimeAssertion
------------------------
T075_01_CreateDateTime
-----------------
T075_02_DateTimeBeforeAfter_BeIn
T075_03_DateTimeBeforeAfter_Be_NotBe
T075_04_DateTimeBeforeAfter_BeAfter_NotBeAfter
T075_05_DateTimeBeforeAfter_BeBefore_NotBeBefore
T075_06_DateTimeBeforeAfter_BeOnOrAfter_NotBeOnOrAfter
T075_07_DateTimeBeforeAfter_BeOnOrBefore_NotBeOnOrBefore
T075_08_DateTimeBeforeAfter_BeOneOf
-----------------
T075_09_DateTimeHave_HaveDay_NotHaveDay
T075_10_DateTimeHave_HaveMonth_NotHaveMonth
T075_11_DateTimeHave_HaveYear_NotHaveYear
T075_12_DateTimeHave_HaveHour_NotHaveHour
T075_13_DateTimeHave_HaveMinute_NotHaveMinute
T075_14_DateTimeHave_HaveSecond_NotHaveSecond
-----------------
T075_15_DateTimeHaveOffset_HaveOffset_NotHaveOffset
-----------------
T075_16_DateTimeCompareBeExactly_Be
T075_17_DateTimeCompareBeExactly_BeExactly
-----------------
T075_18_DateTimeCompareBeLessThan_BeLessThan_WithAfter
T075_19_DateTimeCompareBeLessThan_BeLessThan_WithBefore
-----------------
T075_20_DateTimeCompareBeWithin_BeWithin_After
T075_21_DateTimeCompareBeWithin_BeWithin_Before
-----------------
T075_22_DateTimeCompareBeMoreThan_BeMoreThan_After
T075_23_DateTimeCompareBeMoreThan_BeMoreThan_Before
-----------------
T075_24_DateTimeCompareBeAtLeast_BeAtLeast_After
T075_25_DateTimeCompareBeAtLeast_BeAtLeast_Before
T075_26_DateTimeCompareBeAtLeast_BeMoreThan_BeAtLeast
-----------------
T075_27_DateTimeBeCloseTo_BeCloseTo_WithMilliseconds
T075_28_DateTimeBeCloseTo_BeCloseTo_With20Milliseconds
T075_29_DateTimeBeCloseTo_BeCloseTo_WithSeconds
T075_30_DateTimeBeCloseTo_BeCloseTo_WithHours
-----------------
T075_31_TimeSpansPositiveNegative_CreateTimeSpan
T075_32_TimeSpansPositiveNegative_Be_NotBe
T075_33_TimeSpansPositiveNegative_BePositive_BeNegative
-----------------
T075_34_TimeSpansBeLessOrEqualTo_BeLessThan
T075_35_TimeSpansBeLessOrEqualTo_BeLessOrEqualTo
-----------------
T075_36_TimeSpansBeGreaterOrEqualTo_BeGreaterThan
T075_37_TimeSpansBeGreaterOrEqualTo_BeGreaterOrEqualTo
-----------------
T075_38_TimeSpansBeCloseTo_positiveTimeSpan_With_BeCloseTo_NotBeCloseTo
T075_39_TimeSpansBeCloseTo_negativeTimeSpan_With_BeCloseTo_NotBeCloseTo
T075_40_TimeSpansBeCloseTo_BeCloseTo_With_ticks
-----------------------------
Tutorial 75講義:  關於FluentAssertion底下的DateTimeAssertion
-----------------
Tutorial 75-01:  討論如何製造DateTime
-----------------
Tutorial 75-02:  討論DateTimeBeforeAfter的BeIn
Tutorial 75-03:  討論DateTimeBeforeAfter的Be和NotBe
Tutorial 75-04:  討論DateTimeBeforeAfter的BeAfter和NotBeAfter
Tutorial 75-05:  討論DateTimeBeforeAfter的BeBefore和NotBeBefore
Tutorial 75-06:  討論DateTimeBeforeAfter的BeOnOrAfter和NotBeOnOrAfter
Tutorial 75-07:  討論DateTimeBeforeAfter的BeOnOrBefore和NotBeOnOrBefore
Tutorial 75-08:  討論DateTimeBeforeAfter的BeOneOf
-----------------
Tutorial 75-09:  討論DateTimeHave的HaveDay和NotHaveDay
Tutorial 75-10:  討論DateTimeHave的HaveMonth和NotHaveMonth
Tutorial 75-11:  討論DateTimeHave的HaveYear和NotHaveYear
Tutorial 75-12:  討論DateTimeHave的HaveHour和NotHaveHour
Tutorial 75-13:  討論DateTimeHave的HaveMinute和NotHaveMinute
Tutorial 75-14:  討論DateTimeHave的HaveSecond和NotHaveSecond
-----------------
Tutorial 75-15:  討論DateTimeHaveOffset的HaveOffset和NotHaveOffset
-----------------
Tutorial 75-16:  討論DateTimeCompareBeExactly的Be
Tutorial 75-17:  討論DateTimeCompareBeExactly的BeExactly
-----------------
Tutorial 75-18:  討論DateTimeCompareBeLessThan的BeLessThan搭配After
Tutorial 75-19:  討論DateTimeCompareBeLessThan的BeLessThan搭配Before
-----------------
Tutorial 75-20:  討論DateTimeCompareBeWithin的BeWithin搭配After
Tutorial 75-21:  討論DateTimeCompareBeWithin的BeWithin搭配Before
-----------------
Tutorial 75-22:  討論DateTimeCompareBeMoreThan的BeMoreThan搭配After
Tutorial 75-23:  討論DateTimeCompareBeMoreThan的BeMoreThan搭配Before
-----------------
Tutorial 75-24:  討論DateTimeCompareBeAtLeast的BeAtLeast搭配After
Tutorial 75-25:  討論DateTimeCompareBeAtLeast的BeAtLeast搭配Before
Tutorial 75-26:  討論DateTimeCompareBeAtLeast的BeMoreThan比較BeAtLeast
-----------------
Tutorial 75-27:  討論DateTimeBeCloseTo的BeCloseTo搭配Milliseconds
Tutorial 75-28:  討論DateTimeBeCloseTo的BeCloseTo搭配20Milliseconds
Tutorial 75-29:  討論DateTimeBeCloseTo的BeCloseTo搭配Seconds
Tutorial 75-30:  討論DateTimeBeCloseTo的BeCloseTo搭配Hours
-----------------
Tutorial 75-31:  討論TimeSpansPositiveNegative的CreateTimeSpan
Tutorial 75-32:  討論TimeSpansPositiveNegative的Be和NotBe
Tutorial 75-33:  討論TimeSpansPositiveNegative的BePositive和BeNegative
-----------------
Tutorial 75-34:  討論TimeSpansBeLessOrEqualTo的BeLessThan
Tutorial 75-35:  討論TimeSpansBeLessOrEqualTo的BeLessOrEqualTo
-----------------
Tutorial 75-36:  討論TimeSpansBeGreaterOrEqualTo的BeGreaterThan
Tutorial 75-37:  討論TimeSpansBeGreaterOrEqualTo的BeGreaterOrEqualTo
-----------------
Tutorial 75-38:  討論TimeSpansBeCloseTo的positiveTimeSpan搭配BeCloseTo和NotBeCloseTo
Tutorial 75-39:  討論TimeSpansBeCloseTo的negativeTimeSpan搭配BeCloseTo和NotBeCloseTo
Tutorial 75-40:  討論TimeSpansBeCloseTo的BeCloseTo搭配ticks
-----------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output


Fluent Assertions For Type, Method, Property, Assembly
Fluent Assertions測試Type, Method, Property, Assembly


T076_TypeMethodPropertyAssemblyAssertions
T076A_NUnit_TypeMethodPropertyAssemblyAssertions
T076B_MSTest_TypeMethodPropertyAssemblyAssertions
------------------------
T076_01_Prepare_Introduction
------------------------
T076_02_BeDecorated_ReviseReflection
T076_03_BeDecorated_BeDecoratedWith_BeDecoratedWithOrInherit_ClassAttribute
T076_04_BeDecorated_NotBeDecoratedWith_NotBeDecoratedWithOrInherit_MemberAttribute
T076_05_BeDecorated_BeDecoratedWith_AttributePropertyValue
---------------
T076_06_BeSomething_BeAbstract_NotBeAbstract
T076_07_BeSomething_BeStatic_NotBeStatic
T076_08_BeSomething_BeVirtual_NotBeVirtual_Method
T076_09_BeSomething_BeVirtual_NotBeVirtual_Property
---------------
T076_10_MethodsFilters_ThatArePublicOrInternal
T076_11_MethodsFilters_ThatReturnVoid
T076_12_MethodsFilters_ThatDoNotReturn_ThatAreDecoratedWithOrInherit
T076_13_MethodsFilters_ThatAreDecoratedWith
T076_14_MethodsFilters_Assertions
---------------
T076_15_AssemblyFilters_TypeSelector
T076_16_AssemblyFilters_TypeAssembly
T076_17_AssemblyFilters_TypeAssembly_ThatAreDecoratedWith_ThatAreDecoratedWithOrInherit
T076_18_AssemblyFilters_TypeAssembly_ThatImplement
T076_19_AssemblyFilters_TypeAssembly_ThatAreInNamespace
T076_20_AssemblyFilters_TypeAssembly_ThatDeriveFrom
T076_21_AssemblyFilters_TypeAssembly_ThatAreInNamespace_ThatAreUnderNamespace_ThatAreNotInNamespace
T076_22_AssemblyFilters_AllTypesFromAssembly
T076_23_AssemblyFilters_Assertions
---------------
T076_24_AssemblyReference
-------------------------------
Tutorial 76講義:  關於FluentAssertion底下的Type, Method, Property, Assembly的Assertions
---------------
Tutorial 76-01:  環境準備和介紹
---------------
Tutorial 76-02:  BeDecorated, 複習Reflection
Tutorial 76-03:  BeDecorated, 討論BeDecoratedWith和BeDecoratedWithOrInherit搭配ClassAttribute
Tutorial 76-04:  BeDecorated, 討論NotBeDecoratedWith和NotBeDecoratedWithOrInherit搭配MemberAttribute
Tutorial 76-05:  BeDecorated, 討論BeDecoratedWith搭配AttributePropertyValue
---------------
Tutorial 76-06:  BeSomething, 討論BeAbstract和NotBeAbstract
Tutorial 76-07:  BeSomething, 討論BeStatic和NotBeStatic
Tutorial 76-08:  BeSomething, 討論BeVirtual和NotBeVirtual搭配Method
Tutorial 76-09:  BeSomething, 討論BeVirtual和NotBeVirtual搭配Property
---------------
Tutorial 76-10: MethodsFilters, 討論ThatArePublicOrInternal
Tutorial 76-11: MethodsFilters, 討論ThatReturnVoid
Tutorial 76-12: MethodsFilters, 討論ThatDoNotReturn和ThatAreDecoratedWithOrInherit
Tutorial 76-13: MethodsFilters, 討論ThatAreDecoratedWith
Tutorial 76-14: MethodsFilters, 討論Assertions
---------------
Tutorial 76-15: AssemblyFilters, 討論TypeSelector
Tutorial 76-16: AssemblyFilters, 討論TypeAssembly
Tutorial 76-17: AssemblyFilters, 討論TypeAssembly搭配ThatAreDecoratedWith和ThatAreDecoratedWithOrInherit
Tutorial 76-18: AssemblyFilters, 討論TypeAssembly搭配ThatImplement
Tutorial 76-19: AssemblyFilters, 討論TypeAssembly搭配ThatAreInNamespace
Tutorial 76-20: AssemblyFilters, 討論TypeAssembly搭配ThatDeriveFrom
Tutorial 76-21: AssemblyFilters, 討論TypeAssembly搭配ThatAreInNamespace和ThatAreUnderNamespace和ThatAreNotInNamespace
Tutorial 76-22: AssemblyFilters, 討論AllTypesFromAssembly
Tutorial 76-23: AssemblyFilters, 討論Assertions
---------------
Tutorial 76-24: 討論AssemblyReference
-------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
----------------------
Please Revise
C#課程的
------------
T015_CustomizedAttributesAndReflection
Tutorial15: 關於Attribute屬性。OOPS!又不夠用?客製化Attribute屬性搭配Reflection反射




Fluent Assertions For Action, Thread, Task
Fluent Assertions測試Action, Thread, Task


T077_ActionThreadTask
T077_01_Prepare
T077_02_ThreadTime
T077_03_ActionTime
T077_04_ActionExecutionTime
T077_05_TaskTime
T077_06_FluentAssertion_NUnitToMsTest
---------------------------------------------
Tutorial 77講義:  關於FluentAssertion底下的Acton, Thread, Task
Tutorial 77-01:  背景介紹和準備工作
Tutorial 77-02:  測試Thread的執行時間
Tutorial 77-03:  測試Action的執行時間
Tutorial 77-04:  可用來測試Action的執行時間相關的method
Tutorial 77-05:  測試Task的執行時間
Tutorial 77-06:  討論FluentAssertion把NUnit的code貼到MSTest
---------------------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
----------------------
Please Revise
C#課程的
------------
T029_ThreadAndAsyncAwait
Tutorial29講義: Thread和AsyncAwait各種用法大亂鬥
--------------
T030_AsyncAwaitVSThread
Tutorial30講義: Thread和AsyncAwait差異比較
--------------
T024_FuncDelegate_LambdaExpression_AnonymousMethods
Tutorial24講義: 完全理解FuncDelegate委派和LamdaExpression表達式和AnonymousMethods匿名方法




Fluent Assertions For Type, Nullable, Boolean
Fluent Assertions測試Type, Nullable, Boolean



T078_TypeNullableBoolean
T078_01_Prepare
T078_02_BeTrue_BeFalse
T078_03_BeNull_NotHaveValue_Match
T078_04_BeDerivedFrom_BeOfType_BeAssignableTo
T078_05_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 78講義:  關於FluentAssertion底下的Type, Nullable, Boolean
Tutorial 78-01:  背景介紹和準備工作
Tutorial 78-02:  討論BeTrue和BeFalse
Tutorial 78-03:  討論BeNull和NotHaveValue和Match
Tutorial 78-04:  討論BeDerivedFrom和BeOfType和BeAssignableTo
Tutorial 78-05:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T020_AssertIs_IsTrue_IsFalse_IsNull_IsNotNull_IsInstanceOf_IsNotInstanceOf
Tutorial 20講義:  關於AssertIs, 包括IsTrue, IsFalse_IsNull_IsNotNull_IsInstanceOf_IsNotInstanceOf


Fluent Assertions For Guid, Enum
Fluent Assertions測試Guid, Enum


T079_GuidEnum
T079_01_Prepare
T079_02_GuidValue_Be_BeEmpty
T079_03_EnumValue_Be
T079_04_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 79講義:  關於FluentAssertion底下的GuidValue和EnumValue
Tutorial 79-01:  背景介紹和準備工作
Tutorial 79-02:  討論GuidValue搭配Be和BeEmpty
Tutorial 79-03:  討論EnumValue搭配Be
Tutorial 79-04:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
----------------------
Please Revise
C#課程的
------------
T008_Enum
Tutorial08講義: 關於Enum,Enum.GetValue和Enum.GetNames的比較


Test episode 5: Open Source Libraries.  FluentAssertions Part2
測試第5篇: 斷言神器FluentAssertions Part2

Colleciton Assertion

Fluent Assertions For Int Collection
Fluent Assertions測試Int Collection


T080_IntCollectionAssertion
--------------------------
T080A_NUnit_IntCollectionAssertion
T080B_MSTest_IntCollectionAssertion
--------------------------
T080_01_CreateCollection
T080_02_MSTest_NUnit_CollectionAssertion_EqualCompare
T080_03_FluentAssertion_EqualCompare
T080_04_FluentAssertion_Concatenate
T080_05_FluentAssertion_Count
T080_06_FluentAssertion_StartWith_EndWith
T080_07_MSTest_NUnit_CollectionAssertion_Subset
T080_08_FluentAssertion_Subset
T080_09_MSTest_NUnit_CollectionAssertion_Contains
T080_10_MSTest_NUnit_CollectionAssertion_AllItemsAreNotNull
T080_11_FluentAssertion_Contains_NotContain_NotContainNulls
T080_12_FluentAssertion_ContainInOrder_ContainSingle_OnlyContain
T080_13_MSTest_NUnit_AllItemsAreUnique
T080_14_FluentAssertion_OnlyHaveUniqueItems
T080_15_MSTest_NUnit_CollectionAssertion_IsOrdered
T080_16_FluentAssertion_BeInAscendingOrder_BeInDescendingOrder
T080_17_MSTest_NUnit_CollectionAssertion_AllItemsAreInstancesOfType
T080_18_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T080_19_FluentAssertion_NUnitToMsTest
--------------------------------------
Tutorial 80講義:  關於Int的Collection Assertion
Tutorial 80-01:  製作int的collection
Tutorial 80-02:  討論MSTest和NUnit中關於CollectionAssertion的equal和compare
Tutorial 80-03:  討論FluentAssertion中關於equal和compare
Tutorial 80-04:  討論FluentAssertion中的Concatenate
Tutorial 80-05:  討論FluentAssertion中關於Count
Tutorial 80-06:  討論FluentAssertion中關於StartWith和EndWith
Tutorial 80-07:  討論MSTest和NUnit中關於CollectionAssertion的Subset
Tutorial 80-08:  討論FluentAssertion中關於Subset
Tutorial 80-09:  討論MSTest和NUnit中關於CollectionAssertion的Contains
Tutorial 80-10:  討論MSTest和NUnit中關於CollectionAssertion的AllItemsAreNotNull
Tutorial 80-11:  討論FluentAssertion中關於Contains和NotContain和NotContainNulls
Tutorial 80-12:  討論FluentAssertion中關於ContainInOrder和ContainSingle和OnlyContain
Tutorial 80-13:  討論MSTest和NUnit中關於CollectionAssertion的AllItemsAreUnique
Tutorial 80-14:  討論FluentAssertion中關於OnlyHaveUniqueItems
Tutorial 80-15:  討論MSTest和NUnit中關於CollectionAssertion的IsOrdered
Tutorial 80-16:  討論FluentAssertion中關於BeInAscendingOrder和BeInDescendingOrder
Tutorial 80-17:  討論MSTest和NUnit中關於CollectionAssertion的AllItemsAreInstancesOfType
Tutorial 80-18:  討論FluentAssertion中關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 80-19:  討論FluentAssertion把NUnit的code貼到MSTest
--------------------------------------
Please Revise
B_Test課程的
--------------------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB



Fluent Assertions For String Collection
Fluent Assertions測試String Collection


T081_StringCollectionAssertion
--------------------------------
T081_01_CreateCollection
T081_02_MSTest_NUnit_CollectionAssertion_EqualCompare
T081_03_FluentAssertion_EqualCompare_ContainEquivalentOf
T081_04_FluentAssertion_Concatenate
T081_05_FluentAssertion_Count
T081_06_FluentAssertion_StartWith_EndWith
T081_07_MSTest_NUnit_CollectionAssertion_Subset
T081_08_FluentAssertion_Subset
T081_09_MSTest_NUnit_CollectionAssertion_Contains_AllItemsAreNotNull
T081_10_FluentAssertion_Contains_NotContain_NotContainNulls
T081_11_FluentAssertion_ContainInOrder_ContainSingle_OnlyContain
T081_12_MSTest_NUnit_CollectionAssertion_AllItemsAreUnique
T081_13_FluentAssertion_OnlyHaveUniqueItems
T081_14_MSTest_NUnit_CollectionAssertion_IsOrdered
T081_15_FluentAssertion_BeInAscendingOrder_BeInDescendingOrder
T081_16_MSTest_NUnit_CollectionAssertion_AllItemsAreInstancesOfType
T081_17_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T081_18_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 81講義:  關於String的Collection Assertion
Tutorial 81-01:  製作String的collection
Tutorial 81-02:  討論MSTest和NUnit中關於CollectionAssertion的equal和compare
Tutorial 81-03:  討論FluentAssertion中關於equal和compare和ContainEquivalentOf
Tutorial 81-04:  討論FluentAssertion中的Concatenate
Tutorial 81-05:  討論FluentAssertion中關於count
Tutorial 81-06:  討論FluentAssertion中關於StartWith和EndWith
Tutorial 81-07:  討論MSTest和NUnit中關於CollectionAssertion的Subset
Tutorial 81-08:  討論FluentAssertion中關於Subset
Tutorial 81-09:  討論MSTest和NUnit中關於CollectionAssertion的Contains和AllItemsAreNotNull
Tutorial 81-10:  討論FluentAssertion中關於Contains和NotContain和NotContainNulls
Tutorial 81-11:  討論FluentAssertion中關於ContainInOrder和ContainSingle和OnlyContain
Tutorial 81-12:  討論MSTest和NUnit中關於CollectionAssertion的AllItemsAreUnique
Tutorial 81-13:  討論FluentAssertion中關於OnlyHaveUniqueItems
Tutorial 81-14:  討論MSTest和NUnit中關於CollectionAssertion的IsOrdered
Tutorial 81-15:  討論FluentAssertion中關於BeInAscendingOrder和BeInDescendingOrder
Tutorial 81-16:  討論MSTest和NUnit中關於CollectionAssertion的AllItemsAreInstancesOfType
Tutorial 81-17:  討論FluentAssertion中關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 81-18:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB




Fluent Assertions For Object Collection which Equal and Compare logic is in "other" class
Fluent Assertions測試Object Collection, 此Object的Equal和Compare邏輯在"其他"Class


T082_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082A_Object_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082_01to02
T082B1_NUnit_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082_03to08
T082B2_NUnit_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082_09to26
T082C1_MSTest_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082_27
T082C2_MSTest_ObjectCollectionAssertion_Equal_Compare_ToOtherClass
T082_27
----------------------------------
T082_01_CreateGamer_Equal_Compare_ToOtherClass
T082_02_CreatePower_Equal_Compare_ToOtherClass
----------------------------------
T082_03_CreateObject
T082_04_CreateObjectCollection
----------------------------------
T082_05_Power_SingleAssertion_EqualCompare
T082_06_Gamer_CollectionAssertion_EqualCompare
----------------------------------
T082_07_Gamer_SingleAssertion_EqualCompare
T082_08_Gamer_CollectionAssertion_EqualCompare
----------------------------------
T082_09_MSTest_NUnit_EqualCompare_Equivalent
T082_10_FluentAssertion_EqualCompare
T082_11_FluentAssertion_BeEquivalentTo_ContainEquivalentOf_AllBeEquivalentTo
T082_12_FluentAssertion_Concatenate
T082_13_FluentAssertion_Count
T082_14_FluentAssertion_StartWith_EndWith
T082_15_MSTest_NUnit_Subset
T082_16_FluentAssertion_Subset
T082_17_MSTest_NUnit_Contains_AllItemsAreNotNull
T082_18_FluentAssertion_Contain_NotContain_NotContainNulls
T082_19_FluentAssertion_ContainInOrder_ContainSingle_OnlyContain
T082_20_MSTest_NUnit_AllItemsAreUnique
T082_21_FluentAssertion_OnlyHaveUniqueItems
T082_22_MSTest_NUnit_IsOrdered
T082_23_FluentAssertion_BeInAscendingOrder_BeInDescendingOrder
T082_24_MSTest_NUnit_AllItemsAreInstancesOfType
T082_25_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T082_26_FluentAssertion_SatisfyRespectively
T082_27_FluentAssertion_NUnitToMsTest
-------------------------------------------
Tutorial 82講義:  關於Object的Collection Assertion搭配OtherClass裡的Equal和Compare
----------------------------------
Tutorial 82-01: 簡介, 製作Gamer, 並在另一個Class寫入Equal和Compare的邏輯
Tutorial 82-02:  製作Power, 並在另一個Class寫入Equal和Compare的邏輯
----------------------------------
Tutorial 82-03:  製作Object
Tutorial 82-04:  製作Object的collection
----------------------------------
Tutorial 82-05:  討論Power的Single的Assertion中的equal和compare
Tutorial 82-06:  討論Power的Collection的Assertion中的equal和compare
----------------------------------
Tutorial 82-07:  討論Gamer的Single的Assertion中的equal和compare
Tutorial 82-08:  討論Gamer的Collection的Assertion中的equal和compare
----------------------------------
Tutorial 82-09:  討論MSTest&NUnit關於equal和compare和Equivalent
Tutorial 82-10:  討論FluentAssertion關於equal和compare
Tutorial 82-11:  討論FluentAssertion關於BeEquivalentTo和ContainEquivalentOf和AllBeEquivalentTo
Tutorial 82-12:  討論FluentAssertion關於Concatenate
Tutorial 82-13:  討論FluentAssertion關於Count
Tutorial 82-14:  討論FluentAssertion關於StartWith和EndWith
Tutorial 82-15:  討論MSTest和NUnit關於Subset
Tutorial 82-16:  討論FluentAssertion關於Subset
Tutorial 82-17:  討論MSTest和NUnit關於Contains和AllItemsAreNotNull
Tutorial 82-18:  討論FluentAssertion關於Contain和NotContain和NotContainNulls
Tutorial 82-19:  討論FluentAssertion關於ContainInOrder和ContainSingle和OnlyContain
Tutorial 82-20:  討論MSTest和NUnit關於AllItemsAreUnique
Tutorial 82-21:  討論FluentAssertion關於OnlyHaveUniqueItems
Tutorial 82-22:  討論MSTest和NUnit關於IsOrdered
Tutorial 82-23:  討論FluentAssertion關於BeInAscendingOrder和BeInDescendingOrder
Tutorial 82-24:  討論MSTest和NUnit關於AllItemsAreInstancesOfType
Tutorial 82-25:  討論FluentAssertion關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 82-26:  討論FluentAssertion關於SatisfyRespectively
Tutorial 82-27:  討論FluentAssertion把NUnit的code貼到MSTest
-------------------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB



Fluent Assertions For Object Collection which Equal and Compare logic is in "the same" class
Fluent Assertions測試Object Collection, 此Object的Equal和Compare邏輯在"相同"Class


T083_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083A_Object_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083_01to03
T083B1_NUnit_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083_04to09
T083B2_NUnit_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083_10to27
T083C1_MSTest_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083_28
T083C2_MSTest_ObjectCollectionAssertion_Equal_Compare_ToTheSameClass
T083_28
----------------------------------
T083_01_CreateGamer_Equal_ToTheSameClass
T083_02_CreateGamer_Compare_ToTheSameClass
T083_03_CreatePower_Equal_Compare_ToTheSameClass
----------------------------------
T083_04_CreateObject
T083_05_CreateObjectCollection
----------------------------------
T083_06_Power_SingleAssertion_EqualCompare
T083_07_Power_CollectionAssertion_EqualCompare
----------------------------------
T083_08_Gamer_SingleAssertion_EqualCompare
T083_09_Gamer_CollectionAssertion_EqualCompare
----------------------------------
T083_10_MSTest_NUnit_EqualCompare_Equivalent
T083_11_FluentAssertion_EqualCompare
T083_12_FluentAssertion_BeEquivalentTo_ContainEquivalentOf_AllBeEquivalentTo
T083_13_FluentAssertion_Concatenate
T083_14_FluentAssertion_Count
T083_15_FluentAssertion_StartWith_EndWith
T083_16_MSTest_NUnit_Subset
T083_17_FluentAssertion_Subset
T083_18_MSTest_NUnit_Contains_AllItemsAreNotNull
T083_19_FluentAssertion_Contain_NotContain_NotContainNulls
T083_20_FluentAssertion_ContainInOrder_ContainSingle_OnlyContain
T083_21_MSTest_NUnit_AllItemsAreUnique
T083_22_FluentAssertion_OnlyHaveUniqueItems
T083_23_MSTest_NUnit_IsOrdered
T083_24_FluentAssertion_BeInAscendingOrder_BeInDescendingOrder
T083_25_MSTest_NUnit_AllItemsAreInstancesOfType
T083_26_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T083_27_FluentAssertion_SatisfyRespectively
T083_28_FluentAssertion_NUnitToMsTest
----------------------------------------------------
Tutorial 83講義:  關於Object的Collection Assertion搭配SameClass裡的Equal和Compare
----------------------------------
Tutorial 83-01: 簡介, 製作Gamer, 並在同一個Class寫入Equal的邏輯
Tutorial 83-02: 簡介, 製作Gamer, 並在同一個Class寫入Compare的邏輯
Tutorial 83-03:  製作Power, 並在同一個Class寫入Equal和Compare的邏輯
----------------------------------
Tutorial 83-04:  製作Object
Tutorial 83-05:  製作Object的collection
----------------------------------
Tutorial 83-06:  討論Power的Single的Assertion中的equal和compare
Tutorial 83-07:  討論Power的Collection的Assertion中的equal和compare
----------------------------------
Tutorial 83-08:  討論Gamer的Single的Assertion中的equal和compare
Tutorial 83-09:  討論Gamer的Collection的Assertion中的equal和compare
----------------------------------
Tutorial 83-10:  討論MSTest&NUnit關於equal和compare和Equivalent
Tutorial 83-11:  討論FluentAssertion關於equal和compare
Tutorial 83-12:  討論FluentAssertion關於BeEquivalentTo和ContainEquivalentOf和AllBeEquivalentTo
Tutorial 83-13:  討論FluentAssertion關於Concatenate
Tutorial 83-14:  討論FluentAssertion關於Count
Tutorial 83-15:  討論FluentAssertion關於StartWith和EndWith
Tutorial 83-16:  討論MSTest和NUnit關於Subset
Tutorial 83-17:  討論FluentAssertion關於Subset
Tutorial 83-18:  討論MSTest和NUnit關於Contains和AllItemsAreNotNull
Tutorial 83-19:  討論FluentAssertion關於Contain和NotContain和NotContainNulls
Tutorial 83-20:  討論FluentAssertion關於ContainInOrder和ContainSingle和OnlyContain
Tutorial 83-21:  討論MSTest和NUnit關於AllItemsAreUnique
Tutorial 83-22:  討論FluentAssertion關於OnlyHaveUniqueItems
Tutorial 83-23:  討論MSTest和NUnit關於IsOrdered
Tutorial 83-24:  討論FluentAssertion關於BeInAscendingOrder和BeInDescendingOrder
Tutorial 83-25:  討論MSTest和NUnit關於AllItemsAreInstancesOfType
Tutorial 83-26:  討論FluentAssertion關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 83-27:  討論FluentAssertion關於SatisfyRespectively
Tutorial 83-28:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB




Fluent Assertions For Int String Dictionary
Fluent Assertions測試Int String Dictionary



T084_IntStringDictionaryAssert
T084A_NUnit_IntStringDictionaryAssert
T084B_MSTest_IntStringDictionaryAssert
----------------------------------
T084_01_Introduction_CreateIntStringDictionary
T084_02_MSTest_NUnit_Equal_Equivalent
T084_03_FluentAssertion_Equal_Equivalent
T084_04_FluentAssertion_Concatenate
T084_05_FluentAssertion_Count
T084_06_MSTest_NUnit_Subset
T084_07_MSTest_NUnit_Contains
T084_08_FluentAssertion_Contain_NotContain
T084_09_FluentAssertion_ContainKey_ContainValue
T084_10_MSTest_NUnit_AllItemsAreUnique
T084_11_MSTest_NUnit_AllItemsAreInstancesOfType
T084_12_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T084_13_FluentAssertion_SatisfyRespectively
T084_14_FluentAssertion_NUnitToMsTest
----------------------------------------------------
Tutorial 84講義: 關於int和String的Dictionary Assertion
Tutorial 84-01:  簡介, 製作int搭配string的Dictionary
Tutorial 84-02:  討論MSTest&NUnit關於equal和Equivalent
Tutorial 84-03:  討論FluentAssertion關於equal和Equivalent
Tutorial 84-04:  討論FluentAssertion關於Concatenate
Tutorial 84-05:  討論FluentAssertion關於Count
Tutorial 84-06:  討論MSTest和NUnit關於Subset
Tutorial 84-07:  討論MSTest和NUnit關於Contains
Tutorial 84-08:  討論FluentAssertion關於Contain和NotContain
Tutorial 84-09:  討論FluentAssertion關於ContainKey和ContainValue
Tutorial 84-10:  討論MSTest和NUnit關於AllItemsAreUnique
Tutorial 84-11:  討論MSTest和NUnit關於AllItemsAreInstancesOfType
Tutorial 84-12:  討論FluentAssertion關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 84-13:  討論FluentAssertion關於SatisfyRespectively
Tutorial 84-14:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB



Fluent Assertions For Object Dictionary which Equal and Compare logic is in "other" class
Fluent Assertions測試Object Dictionary, 此Object的Equal和Compare邏輯在"其他"Class



T085_ObjectDictionaryAssertion_Equal_Compare_ToOtherClass
T085A_Object_ObjectDictionaryAssertion_ToOtherClass
T085_01to02
T085B1_NUnit_ObjectDictionaryAssertion_Equal_ToOtherClass
T085_03to07
T085B2_NUnit_ObjectDictionaryAssertion_ToOtherClass
T085_08to16
T085C1_MSTest_ObjectDictionaryAssertion_Equal_ToOtherClass
T085_17
T085C2_MSTest_ObjectDictionaryAssertion_ToOtherClass
T085_17
------------------------
T085_01_Revise_Gamer_Equal_Compare_ToOtherClass
T085_02_Revise_Power_Equal_Compare_ToOtherClass
------------------------
T085_03_CreateObject
T085_04_CreateObjectCollection
------------------------
T085_05_SingleAssertion_Equal_Equivalent
T085_06_MSTest_NUnit_DictionaryAssertion_Equal_Equivalent
T085_07_FluentAssertion_DictionaryAssertion_Equal_Equivalent
------------------------
T085_08_FluentAssertion_Concatenate
T085_09_FluentAssertion_Count
T085_10_MSTest_NUnit_Subset
T085_11_MSTest_NUnit_Contains
T085_12_FluentAssertion_Contain
T085_13_FluentAssertion_ContainKey(s)_ContainValue(s)
T085_14_MSTest_NUnit_AllItemsAreInstancesOfType
T085_15_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T085_16_FluentAssertion_SatisfyRespectively
------------------------
T085_17_FluentAssertion_NUnitToMsTest
----------------------------------
Tutorial 85講義: 關於Object的Dictionary的Assertion討論Equal和Compare在OtherClass
------------------------
Tutorial 85-01: 簡介, 複習Gamer, 在其他Class寫入Equal和Compare的邏輯
Tutorial 85-02:  複習Power, 在其他Class寫入Equal和Compare的邏輯
------------------------
Tutorial 85-03:  製作Object
Tutorial 85-04:  製作Object的collection
------------------------
Tutorial 85-05:  討論Power的Single的Assertion中的equal和Equivalent
Tutorial 85-06:  討論MSTest和NUnit透過Dictionary的Assertion中的equal和Equivalent
Tutorial 85-07:  討論FluentAssertion透過Dictionary的Assertion中的equal和Equivalent
------------------------
Tutorial 85-08:  討論FluentAssertion關於Concatenate
Tutorial 85-09:  討論FluentAssertion關於Count
Tutorial 85-10:  討論MSTest和NUnit關於Subset
Tutorial 85-11:  討論MSTest和NUnit關於Contains
Tutorial 85-12:  討論FluentAssertion關於Contain
Tutorial 85-13:  討論FluentAssertion關於ContainKey(s)和ContainValue(s)
Tutorial 85-14:  討論MSTest和NUnit關於AllItemsAreInstancesOfType
Tutorial 85-15:  討論FluentAssertion關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 85-16:  討論FluentAssertion關於SatisfyRespectively
------------------------
Tutorial 85-17:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB




Fluent Assertions For Object Dictionary which Equal and Compare logic is in "the same" class
Fluent Assertions測試Object Dictionary, 此Object的Equal和Compare邏輯在"相同"Class


T086_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086A_Object_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086_01to02
T086B1_NUnit_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086_03to07
T086B2_NUnit_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086_08to16
T086C1_MSTest_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086_17
T086C2_MSTest_ObjectDictionaryAssertion_Equal_Compare_ToTheSameClass
T086_17
------------------------
T086_01_Revise_Gamer_Equal_Compare_ToTheSameClass
T086_02_Revise_Power_Equal_Compare_ToTheSameClass
------------------------
T086_03_CreateObject
T086_04_CreateObjectCollection
------------------------
T086_05_SingleAssertion_Equal_Equivalent
T086_06_MSTest_NUnit_DictionaryAssertion_Equal_Equivalent
T086_07_FluentAssertion_DictionaryAssertion_Equal_Equivalent
------------------------
T086_08_FluentAssertion_Concatenate
T086_09_FluentAssertion_Count
T086_10_MSTest_NUnit_Subset
T086_11_MSTest_NUnit_Contains
T086_12_FluentAssertion_Contain
T086_13_FluentAssertion_ContainKey(s)_ContainValue(s)
T086_14_MSTest_NUnit_AllItemsAreInstancesOfType
T086_15_FluentAssertion_ContainItemsAssignableTo_AllBeAssignableTo_AllBeOfType
T086_16_FluentAssertion_SatisfyRespectively
------------------------
T086_17_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 86講義: 關於Object的Dictionary的Assertion討論Equal和Compare在TheSameClass
------------------------
Tutorial 86-01: 簡介, 複習Gamer, 在相同Class寫入Equal和Compare的邏輯
Tutorial 86-02:  複習Power, 在相同Class寫入Equal和Compare的邏輯
------------------------
Tutorial 86-03:  製作Object
Tutorial 86-04:  製作Object的collection
------------------------
Tutorial 86-05:  討論Power的Single的Assertion中的equal和Equivalent
Tutorial 86-06:  討論MSTest和NUnit透過Dictionary的Assertion中的equal和Equivalent
Tutorial 86-07:  討論FluentAssertion透過Dictionary的Assertion中的equal和Equivalent
------------------------
Tutorial 86-08:  討論FluentAssertion關於Concatenate
Tutorial 86-09:  討論FluentAssertion關於Count
Tutorial 86-10:  討論MSTest和NUnit關於Subset
Tutorial 86-11:  討論MSTest和NUnit關於Contains
Tutorial 86-12:  討論FluentAssertion關於Contain
Tutorial 86-13:  討論FluentAssertion關於ContainKey(s)和ContainValue(s)
Tutorial 86-14:  討論MSTest和NUnit關於AllItemsAreInstancesOfType
Tutorial 86-15:  討論FluentAssertion關於ContainItemsAssignableTo和AllBeAssignableTo和AllBeOfType
Tutorial 86-16:  討論FluentAssertion關於SatisfyRespectively
------------------------
Tutorial 86-17:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T047_IComparer_IComparer_IEqualityComparer_DependentEachOther
See GamerH
------------
T045_IComparable_IComparable
See GamerF
------------
T043_IEquatable
See GamerB



Fluent Assertions For XML
Fluent Assertions測試XML


T087_FluentAssertionsIntroduction_XML
T087_01_Introduction
T087_02_ReviseXmlFormat_CreateXmlFile
T087_03_CreateGamerClass
T087_04_ReadXmlByLinq_Return_IEnumerableGamer
T087_05_ReadXmlByLinq_YieldReturn_IEnumerableGamer
T087_06_NUnit_ReadXmlByLinq
T087_07_ReadXmlByLinq_GetFilePath_GetXDocument
T087_08_ReadXmlByLinq_GetXElements_GetXElementByIndex_GetXAttributeByXElementNameAndIndexByXAttributeName
T087_09_FluentAssertion_TestInitialize_TestCleanup
T087_10_FluentAssertion_XDocument_HaveRoot_HaveElement
T087_11_FluentAssertion_XElement_HaveValue_HaveAttribute_HaveElement
T087_12_FluentAssertion_XAttribute_HaveValue
T087_13_FluentAssertion_XDocument_XElement_BeEquivalentTo
T087_14_FluentAssertion_XmlTest_Concatenate
---------
T087_15_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 87講義: 關於FluentAssertion測試XML
Tutorial 87-01:  簡介
Tutorial 87-02:  複習xml格式, 製作xml檔案
Tutorial 87-03:  製作Gamer Class
Tutorial 87-04:  讀取Xml by Linq並且Return IEnumerable Gamer
Tutorial 87-05:  讀取Xml by Linq並且Yield Return IEnumerable Gamer
Tutorial 87-06:  在NUnit測試Xml by Linq
Tutorial 87-07:  讀取Xml by Linq實作GetFilePath和GetXDocument
Tutorial 87-08:  讀取Xml by Linq實作GetXElements和GetXElementByIndex和GetXAttributeByXElementNameAndIndexByXAttributeName
Tutorial 87-09:  在FluentAssertion實作TestInitialize和TestCleanup
Tutorial 87-10:  在FluentAssertion測試XDocument的HaveRoot和HaveElement
Tutorial 87-11:  在FluentAssertion測試XElement的HaveValue和HaveAttribute和HaveElement
Tutorial 87-12:  在FluentAssertion測試XAttribute的HaveValue
Tutorial 87-13:  在FluentAssertion測試XDocument和XElement的BeEquivalentTo
Tutorial 87-14:  在FluentAssertion測試Xml的Concatenate
---------
Tutorial 87-15:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
T013_TestExecutionLifeCycle_Output
Tutorial 13講義:  關於TestExecutionLifeCycle和Output
------------
T008_ReadXml
------------
T010_MSTest_DataSourceAttibute_Xml_Csv_SqlServer
------------
T011-01to03_MSTest_DataSourceAttibute_Xml_Csv_SqlServer
T011_09_NUnit_TestCaseSourceAttribute_TestXml



Fluent Assertions For Event Monitoring
Fluent Assertions測試Event


T088_EventMonitoring
T088_01_Introduction
T088_02_ReviseNormalEvent
T088_03_ReviseCustomEvent
T088_04_FluentAssertion_Prepare
T088_05_FluentAssertion_EventMetadata
T088_06_FluentAssertion_NormalEvent
T088_07_FluentAssertion_CustomEvent
---------
T088_08_FluentAssertion_NUnitToMsTest
----------------------
Tutorial 88講義: 關於FluentAssertion監視Event
Tutorial 88-01:  簡介
Tutorial 88-02:  複習普通Event
Tutorial 88-03:  複習自訂Event
Tutorial 88-04:  FluentAssertion準備工作
Tutorial 88-05:  FluentAssertion測試EventMetadata
Tutorial 88-06:  FluentAssertion測試普通Event
Tutorial 88-07:  FluentAssertion測試自訂Event
---------
Tutorial 88-08:  討論FluentAssertion把NUnit的code貼到MSTest
----------------------
Please Revise
B_Test課程的
------------
***
T039_MockEvent
----------------------
Please Revise
C#課程的
------------
T025_LambdaExpression_AnonymousMethods_RegisterEvent
----------------------
Reference:
Fluent Assertion Test Event



Fluent Assertions For Exception
Fluent Assertions測試Exception



T089_Exception
T089_01_Introduction
T089_02_ReviseNormalException
T089_03_ReviseCustomException
T089_04_NUnit_Exception
T089_05_MSTest_Exception
T089_06_FluentAssertion_NormalException
T089_07_FluentAssertion_CustomException
---------
T089_08_FluentAssertion_NUnitToMsTest
T089_09_WhatNext
----------------------
Tutorial 89講義: 關於FluentAssertion測試Exception
Tutorial 89-01:  簡介
Tutorial 89-02:  複習普通Exception
Tutorial 89-03:  複習自訂Exception
Tutorial 89-04:  NUnit測試Exception
Tutorial 89-05:  MSTest測試Exception
Tutorial 89-06:  FluentAssertion測試普通Exception
Tutorial 89-07:  FluentAssertion測試自訂Exception
---------
Tutorial 89-08:  討論FluentAssertion把NUnit的code貼到MSTest
Tutorial 89-09:  還有些東西可以學
----------------------
Please Revise
B_Test課程的
------------
T071_BasicAssertions


What Next
還有什麼



T090_WhatNext
----------------------
Tutorial 90講義: FluentAssertion還要學什麼
Tutorial 90: FluentAssertion還要學什麼











留言

這個網誌中的熱門文章

T000_011_Install Visual Studio 2019 Offline

T020_CreateLargeData_SubQuery_Join_Performance

IT工具人學院