CLion を使用して Cmake プロジェクトを作成し、GoogleTest と GoogleMock を使用してコードをテストします

1. 環境の準備

  • バージョンの一致に注意してください。私のローカル バージョンは g++ 8.1.0 です。最初、GoogleTest の最新バージョン 1.10.0 をインストールしましたが、使用できないことがわかり、古いバージョンをダウンロードしに戻りました。
  • g++ 8.1.0 は、Google Test のバージョン 1.8.1 で動作するはずです。
    ここに画像の説明を挿入

Github ダウンロード アドレス: 、通常は最初のもので十分です。

2.CLionでプロジェクトを作成する

  • プロジェクトが作成され、テストを実行できるようになります。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • CMakeLists.txt ファイルを変更する

# CMakeLists.txt

# 本项目的Cmake配置
cmake_minimum_required(VERSION 3.16)
project(MyProject)

# 1、设置 Google Tesk 的版本号,头文件路径,链接库路径
set(GTEST_VERSION 1.10.0)
add_subdirectory(googletest)
include_directories(googletest/include)

# 2、设置 Google Mock 的路径,头文件路径,链接库路径
set(GMOCK_DIR googletest/googlemock)
include_directories(${GMOCK_DIR}/include)
link_directories(${GMOCK_DIR}/build)

# 3、将测试代码添加到可执行文件中
add_executable(MyTest main.cpp q.cc q.h)

# 4、链接 googletest 库
target_link_libraries(MyTest gtest gtest_main)

# 5、链接 Google Mock 的链接库
target_link_libraries(MyTest gmock gmock_main)


  • 次に、現在のディレクトリに新しい googletest フォルダーを作成し、ダウンロードした圧縮パッケージをそのフォルダーに解凍します。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

3. テストケースを書く

ここのコードに注目してください。

# 3、将测试代码添加到可执行文件中
add_executable(MyTest main.cpp q.cc q.h)

main.cpp、これがテストフレームワークです。

#include <gtest/gtest.h>

TEST(HelloTest, BasicAssertions) {
    
    
    EXPECT_STRNE("hello", "world");
    EXPECT_EQ(7 * 6, 42);
}

q.cc、テストするコードは次のとおりです

#include "add.h"
int add(int n1,int n2)
{
    
    
    return n1+n2;
}

ああ、これがテストするコードの関数宣言です

//
// Created by gwj11 on 2023/6/25.
//

#ifndef MYPROJECT_ADD_H
#define MYPROJECT_ADD_H
int add(int n1,int n2);


#endif //MYPROJECT_ADD_H

このようにして、main.cpp に戻って実行できます。

ここに画像の説明を挿入

4. 複雑なテストケース

  • github からダウンロードした以下のような 4 点セットも使用できます
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • 悪いテストの例。ジャンプして特定のエラー箇所を表示できます。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • 合格例
    ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_33957603/article/details/131387116