以下步骤创建一个测试
... test body ...
}
TEST()的参数从一般到特殊,第一个参数是测试用例(test case)的名字,第二个参数是测试用例内的测试名字。两个名字都必须是C++中合法的标志符,同时它们不能包含下划线"_"。一个测试的全名由测试用例的名字加用例风的测试名字组成。不同的测试用例可以有相同的测试名字。
例如下面的一个个简单函数
int Factorial ( int n ); // Returns the factorial of n
这个函数的一个测试用例可以像这样定义:
// Tests factorial of 0.
TEST ( FactorialTest , HandlesZeroInput ) {
EXPECT_EQ ( 1 , Factorial ( 0 ));
}
// Tests factorial of positive numbers.
TEST ( FactorialTest , HandlesPositiveInput ) {
EXPECT_EQ ( 1 , Factorial ( 1 ));
EXPECT_EQ ( 2 , Factorial ( 2 ));
EXPECT_EQ ( 6 , Factorial ( 3 ));
EXPECT_EQ ( 40320 , Factorial ( 8 ));
}
gtest将相同测试用例名的测试组织成一个组,所以逻辑上相关的测试应该放在同一个测试用例。换句话说,TEST()里面的第一个参数应该是相同的。上面的例子中,有两个测试, HandlesZeroInput和HandlesPositiveInput,他们属于相同的测试用例 FactorialTest。
- 使用TEST()宏来定义和命名一个测试函数,这些函数是普通的C++函数,且没有返回值。
- 在函数里面,可以使用任何支持的C++语法,使用大量的断言来检查值。
- 测试的结果决定于断言。如果任何的断言失败(不论是fatal还是非fatal),或者测试崩溃,整个测试就失败。
... test body ...
}
TEST()的参数从一般到特殊,第一个参数是测试用例(test case)的名字,第二个参数是测试用例内的测试名字。两个名字都必须是C++中合法的标志符,同时它们不能包含下划线"_"。一个测试的全名由测试用例的名字加用例风的测试名字组成。不同的测试用例可以有相同的测试名字。
例如下面的一个个简单函数
int Factorial ( int n ); // Returns the factorial of n
这个函数的一个测试用例可以像这样定义:
// Tests factorial of 0.
TEST ( FactorialTest , HandlesZeroInput ) {
EXPECT_EQ ( 1 , Factorial ( 0 ));
}
// Tests factorial of positive numbers.
TEST ( FactorialTest , HandlesPositiveInput ) {
EXPECT_EQ ( 1 , Factorial ( 1 ));
EXPECT_EQ ( 2 , Factorial ( 2 ));
EXPECT_EQ ( 6 , Factorial ( 3 ));
EXPECT_EQ ( 40320 , Factorial ( 8 ));
}
gtest将相同测试用例名的测试组织成一个组,所以逻辑上相关的测试应该放在同一个测试用例。换句话说,TEST()里面的第一个参数应该是相同的。上面的例子中,有两个测试, HandlesZeroInput和HandlesPositiveInput,他们属于相同的测试用例 FactorialTest。