เราสามารถยืนยันข้อยกเว้นในการทดสอบหน่วยได้ 2 วิธี
- การใช้ Assert.ThrowsException
- การใช้แอตทริบิวต์ ExpectedException
ตัวอย่าง
ให้เราพิจารณาเมธอด StringAppend ซึ่งต้องมีการทดสอบข้อยกเว้น
ใช้ System;namespace DemoApplication { โปรแกรมคลาสสาธารณะ { static void Main (string[] args) { } สตริงสาธารณะ StringAppend (ชื่อสตริง, นามสกุลสตริง) { โยนข้อยกเว้นใหม่ ("ข้อยกเว้นการทดสอบ"); } }}
การใช้ Assert.ThrowsException
<ก่อน> ใช้ระบบ ใช้ DemoApplication ใช้ Microsoft.VisualStudio.TestTools.UnitTesting;namespace DemoUnitTest { [TestClass] DemoUnitTest คลาสสาธารณะ { [TestMethod] โมฆะสาธารณะ DemoMethod () { โปรแกรมโปรแกรม =โปรแกรมใหม่ (); var ex =Assert.ThrowsExceptionตัวอย่าง เรากำลังเรียกใช้เมธอด StringAppend โดยใช้ Assert.ThrowsException และประเภทข้อยกเว้นและข้อความจะได้รับการตรวจสอบ ดังนั้นกรณีทดสอบก็จะผ่านไป
การใช้แอตทริบิวต์ ExpectedException
<ก่อนหน้า>ใช้ระบบ ใช้ DemoApplication ใช้ Microsoft.VisualStudio.TestTools.UnitTesting;namespace DemoUnitTest { [TestClass] DemoUnitTest คลาสสาธารณะ { [TestMethod] [ExpectedException (typeof (Exception), "Test Exception")] โมฆะสาธารณะ DemoMethod () { โปรแกรม โปรแกรม =โปรแกรมใหม่ (); program.StringAppend("ไมเคิล", "แจ็คสัน"); } }}ตัวอย่าง เราใช้แอตทริบิวต์ ExpectedException และระบุประเภทของข้อยกเว้นที่คาดไว้ เนื่องจากเมธอด StringAppend ส่งข้อยกเว้นประเภทเดียวกับที่กล่าวถึงใน [ExpectedException(typeof(Exception), "Test Exception")] กรณีทดสอบจะผ่าน