
Unit Testing และ xUnit
framework xUnit, test case, assertions, Moq, FluentAssertions, code coverage, หลักการ TDD
1xUnit คืออะไรในบริบทของ .NET?
xUnit คืออะไรในบริบทของ .NET?
คำตอบ
xUnit เป็น framework สำหรับ unit testing แบบโอเพนซอร์สสำหรับ .NET ได้รับแรงบันดาลใจจาก JUnit และ NUnit โดยใช้ attribute อย่าง [Fact] สำหรับ test แบบง่ายและ [Theory] สำหรับ test แบบกำหนดพารามิเตอร์ xUnit ส่งเสริมแนวทางปฏิบัติที่ดีอย่างการแยกเป็นอิสระของ test (แต่ละ test สร้าง instance ของคลาส test ใหม่) และหลีกเลี่ยง shared state ผ่านเมธอด Setup/Teardown แบบดั้งเดิม
2ความแตกต่างระหว่าง [Fact] และ [Theory] ใน xUnit คืออะไร?
ความแตกต่างระหว่าง [Fact] และ [Theory] ใน xUnit คืออะไร?
คำตอบ
[Fact] กำกับ test แบบง่ายที่รันเพียงครั้งเดียวโดยไม่มีพารามิเตอร์ ในขณะที่ [Theory] กำกับ test แบบกำหนดพารามิเตอร์ที่รันหลายครั้งด้วยค่าต่าง ๆ ที่ให้ผ่าน [InlineData], [MemberData] หรือ [ClassData] การใช้ [Theory] ช่วยหลีกเลี่ยงการเขียนโค้ดซ้ำเมื่อทดสอบหลายสถานการณ์ที่คล้ายกันด้วยข้อมูลที่แตกต่างกัน
3จะใช้ [InlineData] กับ [Theory] ใน xUnit อย่างไร?
จะใช้ [InlineData] กับ [Theory] ใน xUnit อย่างไร?
คำตอบ
[InlineData] ให้ข้อมูลโดยตรงใน attribute สำหรับ test [Theory] ทำให้สามารถรัน test เดียวกันด้วยค่าที่ต่างกันได้ แต่ละ attribute [InlineData] แทน test case ที่แตกต่างกัน วิธีนี้เหมาะอย่างยิ่งสำหรับการทดสอบหลายสถานการณ์แบบง่ายโดยไม่ต้องสร้างคลาสข้อมูลแยกต่างหาก ช่วยลดโค้ด boilerplate
ข้อได้เปรียบหลักของ Moq ใน unit testing ของ .NET คืออะไร?
จะกำหนดค่า mock ด้วย Moq ให้เมธอดคืนค่าที่ระบุได้อย่างไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ .NET อื่นๆ
พื้นฐาน C#
LINQ & Delegates
พื้นฐานสำคัญของภาษา C#
พื้นฐาน ASP.NET Core
วงจรชีวิตของ request ใน ASP.NET Core
Configuration & Settings
วงจรชีวิตของแอปพลิเคชัน
Dependency Injection
Entity Framework Core
Minimal APIs
การพัฒนา Web API
Async ใน ASP.NET Core
Authentication & Authorization
HttpClient & Networking
การซีเรียลไลซ์ JSON
Entity Framework Core ขั้นสูง
ฟีเจอร์ขั้นสูงของ C#
Clean Architecture
Logging, Monitoring & Observability
การทดสอบแบบบูรณาการ
Docker & Containerization
การจัดการแพ็กเกจ NuGet
Memory Management & GC
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
.NET Design Patterns
การเพิ่มประสิทธิภาพการทำงาน
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี