我的模拟类看起来是这样的:如何测试包含随机值的字符串?
struct StringEater {
MOCK_CONST_METHOD1(ExecuteCommand, void(const char*));
};
和字符串包括不改变的一部分,我可以在测试不设置小部分。事情是这样的:
命令825完成
但它可以
命令123完成
或"Command " + any number + " finished"
。
始终调用模拟类的方法。
那么,我该如何设置测试?这显然不能使用:
StringEater mock;
EXPECT_CALL(mock, ExecuteCommand(StrEq(expectedJsonCmd))).Times(1);
我需要为匹配器放什么?
此作品(感谢十):
TEST(abc, some)
{
struct StringEater {
MOCK_CONST_METHOD1(ExecuteCommand, void(const char*));
};
StringEater eater;
EXPECT_CALL(eater, ExecuteCommand(MatchesRegex("Command\\s([0-9]*)\\sfinished"))).Times(1);
eater.ExecuteCommand("Command 643 finished");
}
这是如此的平凡简单的说,必须有一个catch ...这里有什么具体要求?我无法相信一位高级软件工程师和6年的36k专职兽医不知道如何解析一个令人震惊的常规字符串。 –
@J ...从来没有做过正则表达式。尝试使用'MatchesRegex',但失败:( –
@J ...好吧,有一些修复,我做了它的工作。谢谢,但为什么不回答? –