2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Gtest compages est a Google pro scribendo C++ probat, quod in multis suggestis currere potest (including Linux, Mac OS X, Windows, Cygwin, etc.). Ex architectura xUnit. Multas notas utiles sustinet, inter quas identificatio probatio latae sententiae, divitiae assertiones, assertio customization, mors probatio, defectum non terminans, XML relationem generationis, etc.
gtest download inscriptio:GitHub - google/googletest: GoogleTest - Google Testificatio et ludibrium Framework
Ratio download est:git cloneGitHub - google/googletest: GoogleTest - Google Testificatio et ludibrium Framework
Modus institutionis est:
$ cd googletest
Nota: Si error in processu facundo relatus est, sequentem lineam CMakeLists.txt addere potes, ac deinde mandatum sequens: SET(CMAKE_CXX_FLAGS "-std=c++11")
$cmake.
$ Facies
Tunc generabitur in presul lib: libgmock.a libgmock_main.a libgtest.a libgtest_main.a
Tandem nobis sudo constituo.
Structura Directorium:
Duae functiones probandae sunt haec:
simple1.cc
- #include "sample1.h"
-
- // Returns n! (the factorial of n). For negative n, n! is defined to be 1.
- int Factorial(int n) {
- int result = 1;
- for (int i = 1; i <= n; i++) {
- result *= i;
- }
-
- return result;
- }
-
- // Returns true iff n is a prime number.
- bool IsPrime(int n) {
- // Trivial case 1: small numbers
- if (n <= 1) return false;
-
- // Trivial case 2: even numbers
- if (n % 2 == 0) return n == 2;
-
- // Now, we have that n is odd and n >= 3.
-
- // Try to divide n by every odd number i, starting from 3
- for (int i = 3; ; i += 2) {
- // We only have to try i up to the square root of n
- if (i > n/i) break;
-
- // Now, we have i <= n/i < n.
- // If n is divisible by i, n is not prime.
- if (n % i == 0) return false;
- }
-
- // n has no integer factor in the range (1, n), and thus is prime.
- return true;
- }
Header file sample.h
- #ifndef GTEST_SAMPLES_SAMPLE1_H_
- #define GTEST_SAMPLES_SAMPLE1_H_
-
- // Returns n! (the factorial of n). For negative n, n! is defined to be 1.
- int Factorial(int n);
-
- // Returns true iff n is a prime number.
- bool IsPrime(int n);
-
- #endif
1. Continet caput files gtest/gtest.h, limits.h (maximum int et minimum int)
2.Format
- TEST(测试套名,测试用例名)
- {
- //EXPECT_XX
-
- }
Plures esse possunt casus testium sub schedula testarum
eg:
simple_unittest.cc
- #include <limits.h>//包含最大最小数
- #include "sample1.h"
- #include "gtest/gtest.h"//gtest头文件
- namespace {
-
- TEST(FactorialTest, Negative) {
- // 测试名叫Negative,属于FactorialTest测试套
- // 测试用例
- EXPECT_EQ(1, Factorial(-5));//断言相等
- EXPECT_EQ(1, Factorial(-1));
- //前后顺序不影响
- EXPECT_GT(Factorial(-10), 0);//断言大于
- }
-
- TEST(FactorialTest, Zero) {
- EXPECT_EQ(1, Factorial(0));
- }
-
- TEST(FactorialTest, Positive) {
- EXPECT_EQ(1, Factorial(1));
- EXPECT_EQ(2, Factorial(2));
- EXPECT_EQ(6, Factorial(3));
- EXPECT_EQ(40320, Factorial(8));
- }
-
- // Tests IsPrime() 测试是否是素数
- TEST(IsPrimeTest, Negative) {
- //预测 true or false
- EXPECT_FALSE(IsPrime(-1));
- EXPECT_FALSE(IsPrime(-2));
- EXPECT_FALSE(IsPrime(INT_MIN));
- }
-
- TEST(IsPrimeTest, Trivial) {
- EXPECT_FALSE(IsPrime(0));
- EXPECT_FALSE(IsPrime(1));
- EXPECT_TRUE(IsPrime(2));
- EXPECT_TRUE(IsPrime(3));
- }
-
- TEST(IsPrimeTest, Positive) {
- EXPECT_FALSE(IsPrime(4));
- EXPECT_TRUE(IsPrime(5));
- EXPECT_FALSE(IsPrime(6));
- EXPECT_TRUE(IsPrime(23));
- }
- } // namespace
Ad principale munus tentationis efficiendum, utique non opus est principale munus scribere, tum opus est ad bibliothecam gtest_main.a coniungere (adde -lgtest_main optionis cum componendis). For example, compilare sic;
g ++ sample1.cc sample1_unittest.cc -lgtest -std=c++14 -lgtest_main -lpthread -o test1
Eventus:
Certum scribendi modum, principalis in fine adde
- int main(int argc, char** argv)
- {
- testing::InitGoogleTest(&argc,argv);
- return RUN_ALL_TESTS();
- }
Test.cc completum:
- #include <limits.h>//包含最大最小数
- #include "sample1.h"
- #include "gtest/gtest.h"//gtest头文件
- namespace {
-
- TEST(FactorialTest, Negative) {
- // 测试名叫Negative,属于FactorialTest测试套
- // 测试用例
- EXPECT_EQ(1, Factorial(-5));//断言相等
- EXPECT_EQ(1, Factorial(-1));
- //前后顺序不影响
- EXPECT_GT(Factorial(-10), 0);//断言大于
- }
-
- TEST(FactorialTest, Zero) {
- EXPECT_EQ(1, Factorial(0));
- }
-
- TEST(FactorialTest, Positive) {
- EXPECT_EQ(1, Factorial(1));
- EXPECT_EQ(2, Factorial(2));
- EXPECT_EQ(6, Factorial(3));
- EXPECT_EQ(40320, Factorial(8));
- }
-
- // Tests IsPrime() 测试是否是素数
- TEST(IsPrimeTest, Negative) {
- //预测 true or false
- EXPECT_FALSE(IsPrime(-1));
- EXPECT_FALSE(IsPrime(-2));
- EXPECT_FALSE(IsPrime(INT_MIN));
- }
-
- TEST(IsPrimeTest, Trivial) {
- EXPECT_FALSE(IsPrime(0));
- EXPECT_FALSE(IsPrime(1));
- EXPECT_TRUE(IsPrime(2));
- EXPECT_TRUE(IsPrime(3));
- }
-
- TEST(IsPrimeTest, Positive) {
- EXPECT_FALSE(IsPrime(4));
- EXPECT_TRUE(IsPrime(5));
- EXPECT_FALSE(IsPrime(6));
- EXPECT_TRUE(IsPrime(23));
- }
- } // namespace
-
- int main(int argc, char** argv)
- {
- testing::InitGoogleTest(&argc,argv);
- return RUN_ALL_TESTS();
- }
-lgtest_main optio removere cum componendis: