C单元测试测试,使用模板测试类
发布时间:2020-12-16 07:05:01 所属栏目:百科 来源:网络整理
导读:我正在做一些C测试驱动的开发.我有一组类做同样的事情,例如 相同的输入给出相同的输出(或应该,这是我试图测试).我正在使用Visual Studio 2012 CppUnitTestFramework.我想创建一个模板化的测试类,所以我编写了一次测试,并且可以根据需要在类中进行模板,但是我
我正在做一些C测试驱动的开发.我有一组类做同样的事情,例如
相同的输入给出相同的输出(或应该,这是我试图测试).我正在使用Visual Studio 2012 CppUnitTestFramework.我想创建一个模板化的测试类,所以我编写了一次测试,并且可以根据需要在类中进行模板,但是我找不到这样做的方法.我的目标: /* two classes that do the same thing */ class Class1 { int method() { return 1; } }; class Class2 { int method() { return 1; } }; /* one set of tests for all classes */ template< class T> TEST_CLASS(BaseTestClass) { TEST_METHOD(testMethod) { T obj; Assert::AreEqual( 1,obj.method()); } }; /* only have to write small amout to test new class */ class TestClass1 : BaseTestClass<Class1> { }; class TestClass2 : BaseTestClass<Class1> { }; 有没有办法可以使用CppUnitTestFramework来做到这一点? 是否有另一个单元测试框架可以让我这样做? 解决方法
我不知道是否有办法用CppUnitTestFramework做到这一点,
我不熟悉,但你可以肯定 在 googletest做 指定一个任意的类列表并拥有该框架 生成(模板方式)所有这些测试的相同测试.我觉得 适合你的账单. 您可以下载googletest作为源here. 你想要的成语是: typedef ::testing::Types</* List of types to test */> MyTypes; ... TYPED_TEST_CASE(FooTest,MyTypes); ... TYPED_TEST(FooTest,DoesBlah) { /* Here TypeParam is instantiated for each of the types in MyTypes. If there are N types you get N tests. */ // ...test code } TYPED_TEST(FooTest,DoesSomethingElse) { // ...test code } 研究primer和 另请查看More Assertions (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |