ฉันเพิ่งเปิดตัวxUnit ++โดยเฉพาะเป็นทางเลือกแทน Google Test และ Boost Test Library (ดูการเปรียบเทียบ ) หากคุณคุ้นเคยกับ xUnit.Net คุณก็พร้อมสำหรับ xUnit ++
#include "xUnit++/xUnit++.h"
FACT("Foo and Blah should always return the same value")
{
Check.Equal("0", Foo()) << "Calling Foo() with no parameters should always return \"0\".";
Assert.Equal(Foo(), Blah());
}
THEORY("Foo should return the same value it was given, converted to string", (int input, std::string expected),
std::make_tuple(0, "0"),
std::make_tuple(1, "1"),
std::make_tuple(2, "2"))
{
Assert.Equal(expected, Foo(input));
}
คุณสมบัติหลัก:
- อย่างไม่น่าเชื่ออย่างรวดเร็ว: การทดสอบทำงานควบคู่กันไป
- แบบพกพา
- การลงทะเบียนทดสอบอัตโนมัติ
- ประเภทการยืนยันหลายประเภท (Boost ไม่มีอะไรใน xUnit ++)
- เปรียบเทียบคอลเลกชันโดยกำเนิด
- การยืนยันมีสามระดับ:
- ข้อผิดพลาดร้ายแรง
- ข้อผิดพลาดที่ไม่ร้ายแรง
- คำเตือน
- การบันทึกการยืนยันง่าย ๆ:
Assert.Equal(-1, foo(i)) << "Failed with i = " << i;
- ทดสอบการบันทึก:
Log.Debug << "Starting test"; Log.Warn << "Here's a warning";
- การแข่งขัน
- การทดสอบที่ขับเคลื่อนด้วยข้อมูล (ทฤษฎี)
- เลือกการทดสอบที่จะทำงานโดยขึ้นอยู่กับ:
- การจับคู่คุณสมบัติ
- ชื่อสตริงย่อยที่ตรงกัน
- ห้องทดสอบ