我有一个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"语句复杂(,请创建一个新类或进行复制粘贴。
您永远不应该需要对单元测试代码本身进行单元测试。