การทดสอบหน่วย Visual Studio: SetUp และ TearDown


91

แทนที่จะเป็น [SetUp] และ [TearDown] ใน Nunit ทางเลือกอื่นใน Visual Studio Ultimate 2010 Unit Testing คืออะไร ในนูนิทคุณสามารถจินตนาการได้ว่าวิธีการตั้งค่าและการฉีกขาดเป็นเหมือนตัวสร้างและตัวทำลายสำหรับการทดสอบในชั้นเรียนของเรา



คำตอบ:


144

วิธีการที่ใส่คำอธิบายประกอบ[TestInitialize]ถูกรันก่อนการทดสอบแต่ละครั้ง ในทำนองเดียวกัน[TestCleanup]คือหลังการทดสอบแต่ละครั้ง

[ClassInitialize]และ[ClassCleanup]จะถูกเรียกใช้ก่อนและหลัง 'ชุดการทดสอบ' ใน TestClass


6
คุณสามารถเพิ่มได้ว่าเมธอด ClassInitialize ใช้ TestContext เป็นอาร์กิวเมนต์
boutta

4
และควรเป็นแบบคงที่สาธารณะ
Shalom Aleichem

4

Visual Studio จะใช้ MSTest นั่นคือกรอบการทดสอบหน่วยของ Microsoft ซึ่งคล้ายกับ NUnit ในความเป็นจริงส่วนใหญ่มีแนวคิดคล้ายกัน แต่ไวยากรณ์ต่างกัน

ในการดูการเปรียบเทียบผู้สร้าง xUnit (กรอบการทดสอบหน่วยอื่น) มีรายการที่นี่:

http://xunit.github.io/docs/comparisons.html

โดยเฉพาะอย่างยิ่งสิ่งที่คุณถามหาTestInitializeเทียบเท่า MSTest เพื่อ NUnit ของSetupและเหมือนกันสำหรับและTestCleanupTearDown

สิ่งหนึ่งที่ควรทราบฉันจะอยู่กับ NUnit หากคุณกำลังพยายามทำการทดสอบหน่วยอัตโนมัติหรือการผสานรวมอย่างต่อเนื่องบางประเภท เหตุผลหลักที่*unitเฟรมเวิร์กต่างๆเป็นที่ชื่นชอบบน MSTest เป็นเพราะคุณต้องมีสำเนาของ Visual Studio บนเครื่องที่คุณกำลังเรียกใช้การทดสอบ เหมาะสำหรับเครื่องท้องถิ่นของคุณเองเรื่องราวที่แตกต่างสำหรับเซิร์ฟเวอร์ CI Visual Studio เป็นหมูของโปรแกรมและในการติดตั้งบนเซิร์ฟเวอร์ (ซึ่งโดยทั่วไปควรมีน้ำหนักเบาและเร็วที่สุดเท่าที่จะเป็นไปได้) เพียงแค่เรียกใช้การทดสอบก็น่ารำคาญเล็กน้อย


7
คุณสามารถติดตั้ง TFS Team Test Agent (และไม่กำหนดค่าได้) บนเซิร์ฟเวอร์ CI เพื่อติดตั้งนักวิ่งทดสอบ ( microsoft.com/en-us/download/details.aspx?id=1334 ) ไม่จำเป็นต้องติดตั้ง Visual Studio แบบเต็มเว้นแต่คุณจะต้องการทดสอบ Generic, Order, CodedUI หรือ Performance
jessehouwing

1
Team Build 2012 ติดตั้งการรองรับสำหรับนักวิ่งทดสอบที่แตกต่างกันแบบสำเร็จรูปโดยไม่จำเป็นต้องติดตั้ง Visual Studio บนเซิร์ฟเวอร์บิลด์ของคุณด้วย
jessehouwing
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.