■ 許容誤差を考慮する
対策
* 以下のように第3引数で許容誤差を指定すればいい Assert.AreEqual([期待する値], [テストする値], 【許容誤差】);[[https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.visualstudio.testtools.unittesting.assert.areequal?view=mstest-net-1.2.0#Microsoft_VisualStudio_TestTools_UnitTesting_Assert_AreEqual_System_Double_System_Double_System_Double_]]
サンプル
* 本来なら許容誤差などを考えなくてもいいのだが、 丸め誤差により、期待する値(この例では「-0.15」)にならない。 そこで、許容誤差(この例では「0.01」)を設ければテストをパスできる [Test] public void Test6() { double ans = this.GetTemperature(273.0); Assert.AreEqual(-0.15, ans, 0.01); } private double GetTemperature(double kelvin) { return kelvin - 273.15; }
参考文献
http://d.hatena.ne.jp/nekozeoyaji/20100621/p1http://d.hatena.ne.jp/nekozeoyaji/20100618/p1
■ 例外の試験を行う
対策
* 以下のようにExpectedException属性(アトリビュート)を指定すればいい [Test] [ExpectedException(typeof(【例外の種類】)] // ←ExpectedException属性(アトリビュート)を指定 public void 【単体試験メソッド】() { // 例外試験 }
サンプル
[Test] [ExpectedException(typeof(System.IndexOutOfRangeException))] public void Test7() { double[] value = new double[2]; value[3] = 12.7; // ★配列外にアクセスするため、例外★ }
関連記事
https://blogs.yahoo.co.jp/dk521123/18458247.html■ 単体テストをPending(一旦、試験対象外)しておきたい
対策
* Ignore属性(アトリビュート)を指定すれば、指定した単体試験は、無視(Ignore)される
サンプル
[Test] [Ignore] // ←Ignore属性(アトリビュート)を指定しておくと、この単体試験は試験対象外となる public void Test8() { Assert.IsFalse(true); }