我在CMake下有一个项目,其中一些文件是从XML文件生成的python生成器.我无法在CMakeLists.txt中指定此生成器生成的所有文件,因此我使用文件globbing.
问题是当我更新我的XML文件或生成器源(它们在同一个存储库中)时,我希望重新配置我的构建系统,以便在重建代码时考虑更改的文件(例如通过make).
是否有可能使CMake处理一些文件,比如它处理CMakeLists.txt文件并使它在更改这些文件时重新生成构建系统?
我正在使用Give / When / Then模式使测试代码更加清晰。由于我使用C ++编写这些测试,因此我选择使用Google Test。使用测试,模式很清晰,因为我确实是这样的:
TEST(TestFixture, TestName)
{
// Given
int a = 5;
int b = 6;
int expectedResult = 30;
// When
int result = Multiply(a, b);
// Then
EXPECT_EQ(expectedResult, result);
}
Run Code Online (Sandbox Code Playgroud)
但是对于模拟,由于在给定部分中出现了一些期望,所以它变得不再清晰。给定部分假定是设置步骤。请看一个例子:
TEST(TestFixture, TestName)
{
// Given
int a = 5;
int b = 6;
int expectedResult = 30;
MightCalculatorMock mock;
EXPECT_CALL(mock, multiply(a,b))
.WillOnce(Return(expectedResult));
// When
int result = Multiply(mock, a, b);
// Then
EXPECT_EQ(expectedResult, result);
}
Run Code Online (Sandbox Code Playgroud)
这种方法正确吗?应在何时将“给定/何时/然后”注释放置在测试代码中?