- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建运行测试所需的字符串数组。我就是这样做的。
TEST(ParseTest, UnknownType) {
String test_strings[] = {
String("X 1024\n"),
String("AB 1024\n")
};
int test_strings_size = sizeof(test_strings) / sizeof(test_strings[0]);
for (int idx = 0; idx < test_strings_size; idx++) {
Transaction transaction;
String transaction_type = test_strings[idx];
EXPECT_THROW(transaction.parse(transaction_type), ParseError);
}
}
但是当我在谷歌测试框架中运行它时,我收到以下错误:
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ParseTest
[ RUN ] ParseTest.UnknownRequestType
tests/transaction.cpp:20: Failure
Expected: transaction.parse(transaction_type) throws an exception of type ParseError.
Actual: it throws nothing.
[ FAILED ] ParseTest.UnknownRequestType (0 ms)
[----------] 1 test from ParseTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] ParseTest.UnknownRequestType
1 FAILED TEST
当这实际上应该运行两个测试用例时,它只提示一个。我错过了什么吗?
最佳答案
这里有一些说明:
您实际上正在运行一个测试用例,请参阅以下定义:
TEST(TestCase, TestName)
因此,在测试结果中,当它显示“1 个测试用例运行了 1 个测试”时,“测试”指的是您的 TestName 字段(在您的情况下为 UnknownType),而测试用例显然指的是“测试用例”(ParseTest)。您在特定测试中设置多少“断言”或“期望”并不重要。最终将作为一项测试报告。
所以如果你有
TEST(TestCase1, Test1){
.....
}
TEST(TestCase1, Test2){
....
}
它将报告为:运行了 1 个测试用例的 2 个测试
因此,假设“X 1024”是导致异常的原因,我怀疑“AB 1024”(无异常)的结果是最终报告的结果。
关于unit-testing - 在 googletest 框架中的 for 循环内运行 EXPECT_THROW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370221/
我正在尝试测试 EXPECT_THROW,如下所示。 #include int Foo(int a, int b){ if (a == 0 || b == 0){ throw
我有一个没有默认构造函数的类,但构造函数可能会抛出。我想要一个像这样的测试: EXPECT_THROW(MyClass(param), std::runtime_error); 但是编译器 g++ 提
我正在尝试创建运行测试所需的字符串数组。我就是这样做的。 TEST(ParseTest, UnknownType) { String test_strings[] = { St
我正在尝试创建运行测试所需的字符串数组。我就是这样做的。 TEST(ParseTest, UnknownType) { String test_strings[] = { St
大家好,我有这个构造函数 Matrix::Matrix(size_t row, size_t col) { if(row >(row,std::vector(col, 0)); } 和这个测试
我是一名优秀的程序员,十分优秀!