为了对某些代码进行BDD样式测试,我有一组要在多种情况下执行的测试。我已经在C#中使用NUnit&NSubstitute完成了很多次,但是我正在努力通过GoogleTest实现C ++代码的预期结果。
我想做什么的概念-但由于BaseTest中的纯虚方法,甚至无法编译为:
class BaseTest : public ::testing::Test {
protected:
int expected = 0;
int actual = 0;
virtual void SetUp() { printf("BaseTest SetUp()\r\n"); }
virtual void TearDown() { printf("BaseTest TearDown()\r\n"); }
virtual void PureVirtual() = 0;
};
TEST_F(BaseTest, BaseTest1)
{
printf("BaseTest BaseTest1\r\n");
ASSERT_EQ(expected, actual);
}
class ScenarioOne: public BaseTest {
public:
virtual void SetUp()
{
BaseTest::SetUp();
printf("ScenarioOne SetUp()\r\n");
actual = 20;
expected = 20;
}
virtual void PureVirtual() {}
};
class ScenarioTwo: public BaseTest {
public:
virtual void SetUp() …Run Code Online (Sandbox Code Playgroud) googletest ×1