Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะตรวจสอบข้อยกเว้นที่เกิดขึ้นในการทดสอบหน่วย C # ได้อย่างไร


เราสามารถยืนยันข้อยกเว้นในการทดสอบหน่วยได้ 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(() => program.StringAppend("Michael","Jackson")); Assert.AreSame(ex.Message, "Test ข้อยกเว้น"); } }}

ตัวอย่าง เรากำลังเรียกใช้เมธอด 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")] กรณีทดสอบจะผ่าน