การเขียนการทดสอบบูรณาการสำหรับ Entity Framework

เรามีแอปพลิเคชั่นขนาดใหญ่ที่ประกอบด้วย

  • เว็บเลเยอร์ - MVC
  • ชั้นบริการ - เว็บ API
  • เลเยอร์โดเมน
  • DB Layer - รหัส EF 5 ก่อน

เราเขียนการทดสอบหน่วยหลายร้อยรายการเพื่อหลีกเลี่ยงปัญหาเพิ่มเติม ตอนนี้เราต้องการเขียนการทดสอบบูรณาการกับฐานข้อมูล

จนถึงตอนนี้เราใช้ xUnit สำหรับการทดสอบหน่วย แต่ฉันไม่แน่ใจว่าเราจะดำเนินต่อไปได้อย่างไรและมีคำถามบางอย่าง

  1. คุณแนะนำให้เขียนวิธีหนึ่งในการทดสอบการรวม "จากบนลงล่าง" หรือไม่ ดังนั้นการเขียนวิธีทดสอบที่ใช้การกระทำ MVC ผ่านทุกเลเยอร์และส่งผลกระทบต่อฐานข้อมูลหรือแยกออกเป็นส่วน ๆ เช่น Web - API, API - DB?
  2. ฉันค้นหา xUnit เกี่ยวกับ Fixtures แต่ไม่พบตัวอย่างการใช้ IUseFixture กับ Entity Framework
  3. เรากำลังใช้การโยกย้าย Code First ดังนั้นฉันคิดว่าการเริ่มต้นฐานข้อมูลจะเป็นเรื่องง่าย เนื่องจากไฟล์การโยกย้ายทั้งหมดอยู่ในมือของเรา แต่ฉันจะใช้มันเพื่อสร้างฐานข้อมูลทดสอบได้อย่างไร
  4. ทีมของเราประกอบด้วยนักพัฒนามากกว่าหนึ่งคน ดังนั้นการแยกพวกเขาแต่ละคนออกจึงเป็นสิ่งสำคัญ ฉันสามารถใช้เซิร์ฟเวอร์ db การพัฒนาหรือ db ท้องถิ่นสำหรับสิ่งนี้ แต่อีกครั้ง ฉันไม่สามารถหาวิธีเปลี่ยนสตริงการเชื่อมต่อตามผู้ใช้ได้

ยังไม่ใช่ตอนนี้ แต่ในอนาคตอันใกล้นี้ เราจะทำการทดสอบเหล่านี้กับ TFS 2012 builds


person bahadir arslan    schedule 17.04.2013    source แหล่งที่มา


คำตอบ (1)


คุณควรลองความพยายาม

http://effort.codeplex.com/

โดยจัดเตรียมฐานข้อมูลในหน่วยความจำสำหรับ Entity Framework โดยให้การเชื่อมต่อพิเศษเมื่อสร้าง DbContext ของคุณ

นอกจากนี้ยังสามารถเติมฐานข้อมูลด้วยข้อมูลจากไฟล์ CSV

person andres.chort    schedule 27.10.2013