• 課程時長

    20 小時 3 分

  • 課程級別

    初級

  • 授課語言

    中文

這堂課你將會學到

  • 學習使用Fluent Assertions,該語法通用於MSTest, xUnit, NUnit, Gallio, MBUnit, MSpec and NSpec, 也通用於.NET Core和.NET standard和.NET Framework
  • 複習AAA (Arrange, Act, Assert), 以及討論為何使用Fluent Assertions. 討論它的基礎用法
  • 用Fluent Assertions 語法來實作類似NUnit 的 Assert.Multiple()功能的AssertionScope()。
  • 使用 Fluent Assertions 語法,針對 String型別做 StartsWith、EndsWith、Contains、Matches、DoesNotMatch 等各種測試。
  • 使用Fluent Assertions 語法,針對 Int、Decimal、Double、Float、Byte 這些型別來做測試
  • 使用Fluent Assertions 語法,針對和時間相關的型別,包括DateTime 和 DateTimeOffset 和 TimeSpan這些型別來做測試
  • 使用Fluent Assertions 語法,針對 C# Reflection 相關的 Type、Method、Property和Assembly 來做測試。
  • 使用Fluent Assertions 語法,針對和Thread、Action 和 Task有關的型別的執行時間來做測試。
  • 使用Fluent Assertions 語法,針對Boolean型別、Nullable型別、Type來做測試。
  • 使用Fluent Assertions 語法,針對Guid型別和Enum型別來做測試。

章節目錄

  • 1

    第 1 章 IT工具人學院

    • 單元 1 - 課程使用方法

    • 單元 2 - ITHandyGuy粉絲團

  • 2

    第 2 章 關於本課程

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

    • 單元 2 - 本課程導讀

    • 單元 3 - 本課程導讀

  • 3

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

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

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

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

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

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

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

  • 4

    第 4 章 工具下載與安裝

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

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

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

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

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

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

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

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

  • 5

    第 5 章 Fluent Assertions初步了解 (課程從這開始)

    • 單元 1 - Tutorial 70講義: FluentAssertions的介紹

    • 單元 2 - Tutorial 70-01: FluentAssertions的介紹

    • 單元 3 - Tutorial 70-02: 建立Fluent Assertion的Sample Solution

    • 單元 4 - Tutorial 71講義: 入門FluentAssertions

    • 單元 5 - Tutorial 71-01: 準備工作

    • 單元 6 - Tutorial 71-02: 複習AAA

    • 單元 7 - Tutorial 71-03: 為何使用FluentAssertions

    • 單元 8 - Tutorial 71-04: 入門FluentAssertions

    • 單元 9 - Tutorial 71-05: 我們剩下的Tutorial會討論什麼

  • 6

    第 6 章 Fluent Assertions的Assertion Scope

    • 單元 1 - Tutorial 72講義: 關於AssertionScope

    • 單元 2 - Tutorial 72-01: 複習TestInitialize和TestCleanup

    • 單元 3 - Tutorial 72-02: 在FluentAssertion搭配NUnit使用AssertionScope

    • 單元 4 - Tutorial 72-03: 在FluentAssertion搭配MSTest使用AssertionScope

  • 7

    第 7 章 Fluent Assertions測試String Value

    • 單元 1 - Tutorial 73講義: 關於StringAssert底下的StartsWith, EndsWith, Contains, Matches, DoesNotMatch

    • 單元 2 - Tutorial 73-01: 複習和介紹

    • 單元 3 - Tutorial 73-02: 使用NUnit, 討論SetUp和TearDown

    • 單元 4 - Tutorial 73-03: 使用MSTest, 討論TestInitialize和TestCleanup

    • 單元 5 - Tutorial 73-04: 使用NUnit, 討論EqualTest

    • 單元 6 - Tutorial 73-05: 使用MSTest, 討論EqualTest

    • 單元 7 - Tutorial 73-06: 使用NUnit, 討論StartsWithTest

    • 單元 8 - Tutorial 73-07: 使用MSTest, 討論StartsWithTest

    • 單元 9 - Tutorial 73-08: 使用NUnit, 討論EndsWithTest

    • 單元 10 - Tutorial 73-09: 使用MSTest, 討論EndsWithTest

    • 單元 11 - Tutorial 73-10: 使用NUnit, 討論ContainsTest

    • 單元 12 - Tutorial 73-11: 使用MSTest, 討論ContainsTest

    • 單元 13 - Tutorial 73-12: 使用NUnit, 討論MatchesTest

    • 單元 14 - Tutorial 73-13: 使用MSTest, 討論MatchesTest

    • 單元 15 - Tutorial 73-14: 使用NUnit, 討論DoesNotMatchTest

    • 單元 16 - Tutorial 73-15: 使用MSTest, 討論DoesNotMatchTest

    • 單元 17 - Tutorial 73-16: 使用FluentAssertions, 討論BeNull, BeEmpty, BeNullOrWhiteSpace, HaveLength

    • 單元 18 - Tutorial 73-17: 使用FluentAssertions, 討論Be, BeEquivalentTo

    • 單元 19 - Tutorial 73-18: 使用FluentAssertions, 討論BeOneOf, Contain, ContainAll, ContainAny, ContainEquivalentOf

    • 單元 20 - Tutorial 73-19: 使用FluentAssertions, 討論StartWith, StartWithEquivalent

    • 單元 21 - Tutorial 73-20: 使用FluentAssertions, 討論EndWith, EndWithEquivalent

    • 單元 22 - Tutorial 73-21: 使用FluentAssertions, 討論Match, MatchEquivalentOf, MatchRegex

  • 8

    第 8 章 Fluent Assertions測試Number Value

    • 單元 1 - Tutorial 74講義: 關於FluentAssertion底下的NumericIAssertion

    • 單元 2 - Tutorial 74-01: 使用NUnit, 討論SetUp和TearDown

    • 單元 3 - Tutorial 74-02: 使用FluentAssertions, 討論IntValue的FailureSuccessMessage

    • 單元 4 - Tutorial 74-03: 使用FluentAssertions, 討論Decimal的FailureSuccessMessage

    • 單元 5 - Tutorial 74-04: 使用FluentAssertions, 討論Double的FailureSuccessMessage

    • 單元 6 - Tutorial 74-05: 使用FluentAssertions, 討論Float的FailureSuccessMessage

    • 單元 7 - Tutorial 74-06: 使用FluentAssertions, 討論byte的FailureSuccessMessage

    • 單元 8 - Tutorial 74-07: 使用FluentAssertions, 討論Int的BeGreaterOrEqualTo

    • 單元 9 - Tutorial 74-08: 使用FluentAssertions, 討論Int的BeGreaterThan

    • 單元 10 - Tutorial 74-09: 使用FluentAssertions, 討論Int的BeLessOrEqualTo

    • 單元 11 - Tutorial 74-10: 使用FluentAssertions, 討論Int的BeLessThan

    • 單元 12 - Tutorial 74-11: 使用FluentAssertions, 討論Int的BePositive, BeNegative

    • 單元 13 - Tutorial 74-12: 使用FluentAssertions, 討論Int的Be, NotBe

    • 單元 14 - Tutorial 74-13: 使用FluentAssertions, 討論Int的BeInRange, NotBeInRange(包含頭尾)

    • 單元 15 - Tutorial 74-14: 使用FluentAssertions, 討論Int的Match

    • 單元 16 - Tutorial 74-15: 使用FluentAssertions, 討論Int的BeOneOf

    • 單元 17 - Tutorial 74-16: 使用FluentAssertions, 討論Int的BeApproximately

    • 單元 18 - Tutorial 74-17: 使用FluentAssertions, 討論Decimal的BeGreaterOrEqualTo

    • 單元 19 - Tutorial 74-18: 使用FluentAssertions, 討論Decimal的BeGreaterThan

    • 單元 20 - Tutorial 74-19: 使用FluentAssertions, 討論Decimal的BeLessOrEqualTo

    • 單元 21 - Tutorial 74-20: 使用FluentAssertions, 討論Decimal的BeLessThan

    • 單元 22 - Tutorial 74-21: 使用FluentAssertions, 討論Decimal的BePositive, BeNegative

    • 單元 23 - Tutorial 74-22: 使用FluentAssertions, 討論Decimal的Be, NotBe

    • 單元 24 - Tutorial 74-23: 使用FluentAssertions, 討論Decimal的BeInRange, NotBeInRange(包含頭尾)

    • 單元 25 - Tutorial 74-24: 使用FluentAssertions, 討論Decimal的Match

    • 單元 26 - Tutorial 74-25: 使用FluentAssertions, 討論Decimal的BeOneOf

    • 單元 27 - Tutorial 74-26: 使用FluentAssertions, 討論Decimal的BeApproximately

    • 單元 28 - Tutorial 74-27: 使用FluentAssertions, 討論Double的BeGreaterOrEqualTo

    • 單元 29 - Tutorial 74-28: 使用FluentAssertions, 討論Double的BeGreaterThan

    • 單元 30 - Tutorial 74-29: 使用FluentAssertions, 討論Double的BeLessOrEqualTo

    • 單元 31 - Tutorial 74-30: 使用FluentAssertions, 討論Double的BeLessThan

    • 單元 32 - Tutorial 74-31: 使用FluentAssertions, 討論Double的BePositive, BeNegative

    • 單元 33 - Tutorial 74-32: 使用FluentAssertions, 討論Double的Be, NotBe

    • 單元 34 - Tutorial 74-33: 使用FluentAssertions, 討論Double的BeInRange, NotBeInRange(包含頭尾)

    • 單元 35 - Tutorial 74-34: 使用FluentAssertions, 討論Double的Match

    • 單元 36 - Tutorial 74-35: 使用FluentAssertions, 討論Double的BeOneOf

    • 單元 37 - Tutorial 74-36: 使用FluentAssertions, 討論Double的BeApproximately

    • 單元 38 - Tutorial 74-37: 使用FluentAssertions, 討論Float的BeGreaterOrEqualTo

    • 單元 39 - Tutorial 74-38: 使用FluentAssertions, 討論Float的BeGreaterThan

    • 單元 40 - Tutorial 74-39: 使用FluentAssertions, 討論Float的BeLessOrEqualTo

    • 單元 41 - Tutorial 74-40: 使用FluentAssertions, 討論Float的BeLessThan

    • 單元 42 - Tutorial 74-41: 使用FluentAssertions, 討論Float的BePositive, BeNegative

    • 單元 43 - Tutorial 74-42: 使用FluentAssertions, 討論Float的Be, NotBe

    • 單元 44 - Tutorial 74-43: 使用FluentAssertions, 討論Float的BeInRange, NotBeInRange(包含頭尾)

    • 單元 45 - Tutorial 74-44: 使用FluentAssertions, 討論Float的Match

    • 單元 46 - Tutorial 74-45: 使用FluentAssertions, 討論Float的BeOneOf

    • 單元 47 - Tutorial 74-46: 使用FluentAssertions, 討論Float的BeApproximately

    • 單元 48 - Tutorial 74-47: 使用FluentAssertions, 討論Byte的BeGreaterOrEqualTo

    • 單元 49 - Tutorial 74-48: 使用FluentAssertions, 討論Byte的BeGreaterThan

    • 單元 50 - Tutorial 74-49: 使用FluentAssertions, 討論Byte的BeLessOrEqualTo

    • 單元 51 - Tutorial 74-50: 使用FluentAssertions, 討論Byte的BeLessThan

    • 單元 52 - Tutorial 74-51: 使用FluentAssertions, 討論Byte的BePositive, BeNegative

    • 單元 53 - Tutorial 74-52: 使用FluentAssertions, 討論Byte的Be, NotBe

    • 單元 54 - Tutorial 74-53: 使用FluentAssertions, 討論Byte的BeInRange, NotBeInRange(包含頭尾)

    • 單元 55 - Tutorial 74-54: 使用FluentAssertions, 討論Byte的Match

    • 單元 56 - Tutorial 74-55: 使用FluentAssertions, 討論Byte的BeOneOf

    • 單元 57 - Tutorial 74-56: 使用FluentAssertions, 討論Byte的BeApproximately

    • 單元 58 - Tutorial 74-57: 使用FluentAssertions, 討論Decimal的InfiniteValue

    • 單元 59 - Tutorial 74-58: 使用FluentAssertions, 討論Double的InfiniteValue

    • 單元 60 - Tutorial 74-59: 使用FluentAssertions, 討論Float的InfiniteValue

  • 9

    第 9 章 Fluent Assertions測試DateTime Value

    • 單元 1 - Tutorial 75講義: 關於FluentAssertion底下的DateTimeAssertion

    • 單元 2 - Tutorial 75-01: 討論如何製造DateTime

    • 單元 3 - Tutorial 75-02: 討論DateTimeBeforeAfter的BeIn

    • 單元 4 - Tutorial 75-03: 討論DateTimeBeforeAfter的Be和NotBe

    • 單元 5 - Tutorial 75-04: 討論DateTimeBeforeAfter的BeAfter和NotBeAfter

    • 單元 6 - Tutorial 75-05: 討論DateTimeBeforeAfter的BeBefore和NotBeBefore

    • 單元 7 - Tutorial 75-06: 討論DateTimeBeforeAfter的BeOnOrAfter和NotBeOnOrAfter

    • 單元 8 - Tutorial 75-07: 討論DateTimeBeforeAfter的BeOnOrBefore和NotBeOnOrBefore

    • 單元 9 - Tutorial 75-08: 討論DateTimeBeforeAfter的BeOneOf

    • 單元 10 - Tutorial 75-09: 討論DateTimeHave的HaveDay和NotHaveDay

    • 單元 11 - Tutorial 75-10: 討論DateTimeHave的HaveMonth和NotHaveMonth

    • 單元 12 - Tutorial 75-11: 討論DateTimeHave的HaveYear和NotHaveYear

    • 單元 13 - Tutorial 75-12: 討論DateTimeHave的HaveHour和NotHaveHour

    • 單元 14 - Tutorial 75-13: 討論DateTimeHave的HaveMinute和NotHaveMinute

    • 單元 15 - Tutorial 75-14: 討論DateTimeHave的HaveSecond和NotHaveSecond

    • 單元 16 - Tutorial 75-15: 討論DateTimeHaveOffset的HaveOffset和NotHaveOffset

    • 單元 17 - Tutorial 75-16: 討論DateTimeCompareBeExactly的Be

    • 單元 18 - Tutorial 75-17: 討論DateTimeCompareBeExactly的BeExactly

    • 單元 19 - Tutorial 75-18: 討論DateTimeCompareBeLessThan的BeLessThan搭配After

    • 單元 20 - Tutorial 75-19: 討論DateTimeCompareBeLessThan的BeLessThan搭配Before

    • 單元 21 - Tutorial 75-20: 討論DateTimeCompareBeWithin的BeWithin搭配After

    • 單元 22 - Tutorial 75-21: 討論DateTimeCompareBeWithin的BeWithin搭配Before

    • 單元 23 - Tutorial 75-22: 討論DateTimeCompareBeMoreThan的BeMoreThan搭配After

    • 單元 24 - Tutorial 75-23: 討論DateTimeCompareBeMoreThan的BeMoreThan搭配Before

    • 單元 25 - Tutorial 75-24: 討論DateTimeCompareBeAtLeast的BeAtLeast搭配After

    • 單元 26 - Tutorial 75-25: 討論DateTimeCompareBeAtLeast的BeAtLeast搭配Before

    • 單元 27 - Tutorial 75-26: 討論DateTimeCompareBeAtLeast的BeMoreThan比較BeAtLeast

    • 單元 28 - Tutorial 75-27: 討論DateTimeBeCloseTo的BeCloseTo搭配Milliseconds

    • 單元 29 - Tutorial 75-28: 討論DateTimeBeCloseTo的BeCloseTo搭配20Milliseconds

    • 單元 30 - Tutorial 75-29: 討論DateTimeBeCloseTo的BeCloseTo搭配Seconds

    • 單元 31 - Tutorial 75-30: 討論DateTimeBeCloseTo的BeCloseTo搭配Hours

    • 單元 32 - Tutorial 75-31: 討論TimeSpansPositiveNegative的CreateTimeSpan

    • 單元 33 - Tutorial 75-32: 討論TimeSpansPositiveNegative的Be和NotBe

    • 單元 34 - Tutorial 75-33: 討論TimeSpansPositiveNegative的BePositive和BeNegative

    • 單元 35 - Tutorial 75-34: 討論TimeSpansBeLessOrEqualTo的BeLessThan

    • 單元 36 - Tutorial 75-35: 討論TimeSpansBeLessOrEqualTo的BeLessOrEqualTo

    • 單元 37 - Tutorial 75-36: 討論TimeSpansBeGreaterOrEqualTo的BeGreaterThan

    • 單元 38 - Tutorial 75-37: 討論TimeSpansBeGreaterOrEqualTo的BeGreaterOrEqualTo

    • 單元 39 - Tutorial 75-38: 討論TimeSpansBeCloseTo的positiveTimeSpan搭配BeCloseTo和NotBeCloseTo

    • 單元 40 - Tutorial 75-39: 討論TimeSpansBeCloseTo的negativeTimeSpan搭配BeCloseTo和NotBeCloseTo

    • 單元 41 - Tutorial 75-40: 討論TimeSpansBeCloseTo的BeCloseTo搭配ticks

  • 10

    第 10 章 Fluent Assertions測試Type, Method, Property, Assembly

    • 單元 1 - Tutorial 76講義: 關於FluentAssertion底下的Type, Method, Property, Assembly的Assertions

    • 單元 2 - Tutorial 76-01: 環境準備和介紹

    • 單元 3 - Tutorial 76-02: BeDecorated, 複習Reflection

    • 單元 4 - Tutorial 76-03: BeDecorated, 討論BeDecoratedWith和BeDecoratedWithOrInherit搭配ClassAttribute

    • 單元 5 - Tutorial 76-04: BeDecorated, 討論NotBeDecoratedWith和NotBeDecoratedWithOrInherit搭配MemberAttribute

    • 單元 6 - Tutorial 76-05: BeDecorated, 討論BeDecoratedWith搭配AttributePropertyValue

    • 單元 7 - Tutorial 76-06: BeSomething, 討論BeAbstract和NotBeAbstract

    • 單元 8 - Tutorial 76-07: BeSomething, 討論BeStatic和NotBeStatic

    • 單元 9 - Tutorial 76-08: BeSomething, 討論BeVirtual和NotBeVirtual搭配Method

    • 單元 10 - Tutorial 76-09: BeSomething, 討論BeVirtual和NotBeVirtual搭配Property

    • 單元 11 - Tutorial 76-10: MethodsFilters, 討論ThatArePublicOrInternal

    • 單元 12 - Tutorial 76-11: MethodsFilters, 討論ThatReturnVoid

    • 單元 13 - Tutorial 76-12: MethodsFilters, 討論ThatDoNotReturn和ThatAreDecoratedWithOrInherit

    • 單元 14 - Tutorial 76-13: MethodsFilters, 討論ThatAreDecoratedWith

    • 單元 15 - Tutorial 76-14: MethodsFilters, 討論Assertions

    • 單元 16 - Tutorial 76-15: AssemblyFilters, 討論TypeSelector

    • 單元 17 - Tutorial 76-16: AssemblyFilters, 討論TypeAssembly

    • 單元 18 - Tutorial 76-17: AssemblyFilters, 討論TypeAssembly搭配ThatAreDecoratedWith和ThatAreDecoratedWithOrInherit

    • 單元 19 - Tutorial 76-18: AssemblyFilters, 討論TypeAssembly搭配ThatImplement

    • 單元 20 - Tutorial 76-19: AssemblyFilters, 討論TypeAssembly搭配ThatAreInNamespace

    • 單元 21 - Tutorial 76-20: AssemblyFilters, 討論TypeAssembly搭配ThatDeriveFrom

    • 單元 22 - Tutorial 76-21: AssemblyFilters, 討論TypeAssembly搭配ThatAreInNamespace和ThatAreUnderNamespace和ThatAreNotInNamespace

    • 單元 23 - Tutorial 76-22: AssemblyFilters, 討論AllTypesFromAssembly

    • 單元 24 - Tutorial 76-23: AssemblyFilters, 討論Assertions

    • 單元 25 - Tutorial 76-24: 討論AssemblyReference

  • 11

    第 11 章 Fluent Assertions測試Action, Thread, Task

    • 單元 1 - Tutorial 77講義: 關於FluentAssertion底下的Acton, Thread, Task

    • 單元 2 - Tutorial 77-01: 背景介紹和準備工作

    • 單元 3 - Tutorial 77-02: 測試Thread的執行時間

    • 單元 4 - Tutorial 77-03: 測試Action的執行時間

    • 單元 5 - Tutorial 77-04: 可用來測試Action的執行時間相關的method

    • 單元 6 - Tutorial 77-05: 測試Task的執行時間

    • 單元 7 - Tutorial 77-06: 討論FluentAssertion把NUnit的code貼到MSTest

  • 12

    第 12 章 Fluent Assertions測試Type, Nullable, Boolean

    • 單元 1 - Tutorial 78講義: 關於FluentAssertion底下的Type, Nullable, Boolean

    • 單元 2 - Tutorial 78-01: 背景介紹和準備工作

    • 單元 3 - Tutorial 78-02: 討論BeTrue和BeFalse

    • 單元 4 - Tutorial 78-03: 討論BeNull和NotHaveValue和Match

    • 單元 5 - Tutorial 78-04: 討論BeDerivedFrom和BeOfType和BeAssignableTo

    • 單元 6 - Tutorial 78-05: 討論FluentAssertion把NUnit的code貼到MSTest

  • 13

    第 13 章 Fluent Assertions測試Guid, Enum

    • 單元 1 - Tutorial 79講義: 關於FluentAssertion底下的GuidValue和EnumValue

    • 單元 2 - Tutorial 79-01: 背景介紹和準備工作

    • 單元 3 - Tutorial 79-02: 討論GuidValue搭配Be和BeEmpty

    • 單元 4 - Tutorial 79-03: 討論EnumValue搭配Be

    • 單元 5 - Tutorial 79-04: 討論FluentAssertion把NUnit的code貼到MSTest