如何从我的C++测试代码中删除冗余



我有一个cpp测试文件

#include "pch.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTests
{
TEST_CLASS(UnitTests)
{
public:

TEST_METHOD(TestMethod1)
{
someCommonMethod();
Assert::AreEqual(add(1, 2) , 3);
}
TEST_METHOD(TestMethod2)
{
someCommonMethod();
Assert::AreEqual(add(1, 3), 4);
}
};
}

如何删除冗余或将代码提取到类中,以便为我创建的每个TEST_METHOD调用someCommonMethod((。我查阅了有关TEST的文档。

我同意@Alan Birtles所写的内容。你确实有https://learn.microsoft.com/en-us/visualstudio/test/microsoft-visualstudio-testtools-cppunittestframework-api-reference?view=vs-2019#Initialize_and_cleanup。

不过,我还是要提醒大家不要使用复杂的通用代码。

给定以下场景:

TEST_CLASS(UnitTests)
{
public:

TEST_METHOD(TestMethod1LogicalGroupBasedOnFeature1) {}
TEST_METHOD(TestMethod2LogicalGroupBasedOnFeature1) {}
TEST_METHOD(TestMethod1LogicalGroupBasedOnFeature2) {}
TEST_METHOD(TestMethod2LogicalGroupBasedOnFeature2) {}
}
...

如果您发现自己使初始化变得复杂(我甚至会考虑init中的1"If"语句复杂(,请创建一个新类或进行复制粘贴。

您永远不应该需要对单元测试代码本身进行单元测试。

最新更新