Hi,大家好,我是小馬彬,今天要將 Microsoft.VisualStudio.TestTools.UnitTesting
的 Assert 所提供的 method 逐個來玩玩,首先要開啟測試專案,直接建一個 TestClass 來實驗,如果不知道如何建立 MSTest 測試專案,可以到我的上一篇文章看看 C#,又來找你玩了! - MSTest 測試專案初體驗,那麼就直接開始逐個了解
Assert.AreEqual
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
[TestMethod()] public void AreEqual() { Assert.AreEqual(1, 1); Assert.AreEqual(true, true); Assert.AreEqual("string", "string"); Assert.AreEqual(1.0, 1.0f); Assert.AreEqual(1, 1.0m); }
|
Assert.AreNotEqual
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void AreNotEqual() { Assert.AreNotEqual(1, 2); Assert.AreNotEqual("one", "two"); }
|
Assert.AreNotSame
1 2 3 4 5 6 7 8
|
[TestMethod()] public void AreNotSame() { Assert.AreNotSame(new[] { 1, 2 }, new[] { 1, 2 }); }
|
Assert.AreSame
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void AreSame() { int[] array = new[] { 1, 2 }; Assert.AreSame(array, array); }
|
Assert.Equals 沒搞懂這個是怎麼回事 XD
Assert.Fail
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
[TestMethod()] public void Fail() { try { Assert.Fail(); } catch (Exception) { Assert.AreEqual(1, 1); } }
|
Assert.Inconclusive
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void Inconclusive() { Assert.Inconclusive(); }
|
Assert.IsFalse
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void IsFalse() { Assert.IsFalse(1 == 2); Assert.IsFalse(false); }
|
Assert.IsInstanceOfType
1 2 3 4 5 6 7 8
|
[TestMethod()] public void IsInstanceOfType() { Assert.IsInstanceOfType(1, typeof(int)); }
|
Assert.IsNotInstanceOfType
1 2 3 4 5 6 7 8
|
[TestMethod()] public void IsNotInstanceOfType() { Assert.IsNotInstanceOfType(1, typeof(string)); }
|
Assert.IsNotNull
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void IsNotNull() { Assert.IsNotNull(1 == 1); Assert.IsNotNull(false); }
|
Assert.IsNull
1 2 3 4 5 6 7 8
|
[TestMethod()] public void IsNull() { Assert.IsNull(null); }
|
Assert.IsTrue
1 2 3 4 5 6 7 8 9
|
[TestMethod()] public void IsTrue() { Assert.IsTrue(1 == 1); Assert.IsTrue(true); }
|
Assert.ReferenceEquals 沒搞懂這個是怎麼回事 XD
Assert.ReplaceNullChars 沒搞懂這個是怎麼回事 XD
Assert.ThrowsException
1 2 3 4 5 6 7 8
|
[TestMethod()] public void ThrowsException() { Assert.ThrowsException(() => new Regex(null)); }
|
總結
將 Assert 給大致上玩過了一遍,除了有幾個完全沒搞懂,爬文是說好像完全不能用 = =,不能用還會放在裡面也蠻奇怪的 XD,其實 MSTest 除了 Assert 的核心 class 可用以外,還有 StringAssert
以及 CollectionAssert
,不過筆者就不通通擠在這篇裡面介紹了,等之後有機會將 class 運用得更嫻熟的時候再來玩玩吧!