GoogleTest 使用指南 | DISABLED_ 前缀

GoogleTest 使用指南 | DISABLED_ 前缀

GoogleTest 使用指南 | DISABLED_ 前缀

TEST(测试套件名, 测试名)

TEST(TestSuiteName, TestName) {
    // 测试代码
}

命名规则:

  • 测试套件名:通常是被测试类或模块的名称
  • 测试名:描述具体测试的内容
  • 两者都必须是有效的 C++ 标识符(不能包含下划线)

对 TestName 使用 DISABLED_ 前缀可以暂时禁用该测试。

// 暂时禁用测试
TEST(MathTest, DISABLED_SlowCalculation) {
    // 这个测试不会运行
    EXPECT_EQ(SlowFunction(), 42);
}

TEST_F(DatabaseTest, DISABLED_RequiresConnection) {
    // 需要数据库连接的测试,暂时禁用
}

示例:

bank_vault.h:

#pragma once

#include <string>

class BankVault {
private:
    double secret_balance;
    std::string password;
    
    bool ValidatePassword(const std::string& pwd) {
        return pwd == password;
    }
    
    // 允许特定测试访问私有成员
    FRIEND_TEST(BankVaultTest, AccessPrivateMembers);
    FRIEND_TEST(BankVaultTest, TestPasswordValidation);
    
public:
    BankVault() : secret_balance(1000000), password("secret123") {}
    
    bool Withdraw(double amount, const std::string& pwd) {
        if (ValidatePassword(pwd) && amount <= secret_balance) {
            secret_balance -= amount;
            return true;
        }
        return false;
    }
};

test_bank_vault.cpp:

#include "gtest/gtest.h"
#include "bank_vault.h"

TEST(BankVaultTest, AccessPrivateMembers) {
    BankVault vault;
    // 可以直接访问私有成员
    EXPECT_EQ(vault.secret_balance, 1000000);
    EXPECT_EQ(vault.password, "secret123");
}

TEST(BankVaultTest, TestPasswordValidation) {
    BankVault vault;
    // 可以调用私有方法
    EXPECT_TRUE(vault.ValidatePassword("secret123"));
    EXPECT_FALSE(vault.ValidatePassword("wrong"));
}

TEST(BankVaultTest, DISABLED_TestWithdraw)
{
    BankVault vault;
    EXPECT_TRUE(vault.Withdraw(100, "secret123"));
    EXPECT_FALSE(vault.Withdraw(2000000, "secret123"));
    EXPECT_FALSE(vault.Withdraw(0, "wrong"));
}

终端输出:

"/Users/xiye/CppProjects/unit-test-example/out/build/Clang 17.0.0 arm64-apple-darwin24.6.0/test_bank_vault"
➜  Clang 17.0.0 arm64-apple-darwin24.6.0 "/Users/xiye/CppProjects/unit-test-example/out/build/Clang 17.0.0 arm64-apple-darwin24.6.0/test_bank_vault"
Running main() from /Users/xiye/CppProjects/unit-test-example/out/build/Clang 17.0.0 arm64-apple-darwin24.6.0/_deps/googletest-src/googletest/src/gtest_main.cc
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from BankVaultTest
[ RUN      ] BankVaultTest.AccessPrivateMembers
[       OK ] BankVaultTest.AccessPrivateMembers (0 ms)
[ RUN      ] BankVaultTest.TestPasswordValidation
[       OK ] BankVaultTest.TestPasswordValidation (0 ms)
[ DISABLED ] BankVaultTest.DISABLED_TestWithdraw
[----------] 2 tests from BankVaultTest (0 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 1 test suite ran. (0 ms total)
[  PASSED  ] 2 tests.

  YOU HAVE 1 DISABLED TEST

若要运行禁用的测试,在执行命令后加上 --gtest_also_run_disabled_tests:

./test_executable --gtest_also_run_disabled_tests

现在,3 个测试都执行了:

➜  Clang 17.0.0 arm64-apple-darwin24.6.0 ./test_bank_vault --gtest_also_run_disabled_tests
Running main() from /Users/xiye/CppProjects/unit-test-example/out/build/Clang 17.0.0 arm64-apple-darwin24.6.0/_deps/googletest-src/googletest/src/gtest_main.cc
[==========] Running 3 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 3 tests from BankVaultTest
[ RUN      ] BankVaultTest.AccessPrivateMembers
[       OK ] BankVaultTest.AccessPrivateMembers (0 ms)
[ RUN      ] BankVaultTest.TestPasswordValidation
[       OK ] BankVaultTest.TestPasswordValidation (0 ms)
[ RUN      ] BankVaultTest.DISABLED_TestWithdraw
[       OK ] BankVaultTest.DISABLED_TestWithdraw (0 ms)
[----------] 3 tests from BankVaultTest (0 ms total)

[----------] Global test environment tear-down
[==========] 3 tests from 1 test suite ran. (0 ms total)
[  PASSED  ] 3 tests.
taos> DESCRIBE my_battery_info; field | type | length | note | encode | compress | level | ================================================================================================================================================ ts | TIMESTAMP | 8 | | delta-i | lz4 | medium | battery_voltage | INT | 4 | | simple8b | lz4 | medium | battery_current | INT | 4 | | simple8b | lz4 | medium | battery_soc | INT | 4 | | simple8b | lz4 | medium | battery_hard_version | NCHAR | 32 | | disabled | zstd | medium | battery_soft_version | NCHAR | 32 | | disabled | zstd | medium | battery_work_mode | NCHAR | 32 | | disabled | zstd | medium | battery_protect_code | NCHAR | 32 | | disabled | zstd | medium | battery_error_code | NCHAR | 50 | | disabled | zstd | medium | battery_temperature_max | INT | 4 | | simple8b | lz4 | medium | battery_temperature_min | INT | 4 | | simple8b | lz4 | medium | battery_voltage_max | INT | 4 | | simple8b | lz4 | medium | battery_voltage_min | INT | 4 | | simple8b | lz4 | medium | mos_status | INT | 4 | | simple8b | lz4 | medium | mos_temp | INT | 4 | | simple8b | lz4 | medium | battery_cycle_times | INT | 4 | | simple8b | lz4 | medium | steady_status | INT | 4 | | simple8b | lz4 | medium | cell_voltage | NCHAR | 200 | | disabled | zstd | medium | model | NCHAR | 32 | | disabled | zstd | medium | manufacture | NCHAR | 32 | | disabled | zstd | medium | imei | NCHAR | 32 | | disabled | zstd | medium | imsi | NCHAR | 32 | | disabled | zstd | medium | iccid | NCHAR | 32 | | disabled | zstd | medium | tracker_hardware_version | NCHAR | 32 | | disabled | zstd | medium | tracker_software_version | NCHAR | 32 | | disabled | zstd | medium | csq | NCHAR | 32 | | disabled | zstd | medium | network_type | NCHAR | 32 | | disabled | zstd | medium | location_mode | NCHAR | 8 | | disabled | zstd | medium | longitude | NCHAR | 20 | | disabled | zstd | medium | longitude_direction | NCHAR | 10 | | disabled | zstd | medium | latitude | NCHAR | 20 | | disabled | zstd | medium | latitude_direction | NCHAR | 10 | | disabled | zstd | medium | gps_speed | NCHAR | 32 | | disabled | zstd | medium | gps_signal | NCHAR | 32 | | disabled | zstd | medium | satellite_num | NCHAR | 32 | | disabled | zstd | medium | accuracy | NCHAR | 32 | | disabled | zstd | medium | flag | INT | 4 | | simple8b | lz4 | medium | client_id | NCHAR | 20 | | disabled | zstd | medium | msg_topic | NCHAR | 100 | | disabled | zstd | medium | product_key | NCHAR | 20 | | disabled | zstd | medium | handled | INT | 4 | | simple8b | lz4 | medium | todo_now | INT | 4 | | simple8b | lz4 | medium | needack | INT | 4 | | simple8b | lz4 | medium | businessmode | NCHAR | 32 | | disabled | zstd | medium | upload_time | TIMESTAMP | 8 | | delta-i | lz4 | medium | create_time | TIMESTAMP | 8 | | delta-i | lz4 | medium | update_time | TIMESTAMP | 8 | | delta-i | lz4 | medium | payload | NCHAR | 2000 | | disabled | zstd | medium | project_id | INT | 4 | | simple8b | lz4 | medium | sn | NCHAR | 100 | | disabled | zstd | medium | soh | INT | 4 | | simple8b | lz4 | medium | battery_temperature_avg | INT | 4 | | simple8b | lz4 | medium | charge_mode | INT | 4 | | simple8b | lz4 | medium | low_battery_warn | INT | 4 | | simple8b | lz4 | medium | charge_current_max | INT | 4 | | simple8b | lz4 | medium | discharge_current_max | INT | 4 | | simple8b | lz4 | medium | charge_current_avg | INT | 4 | | simple8b | lz4 | medium | discharge_current_avg | INT | 4 | | simple8b | lz4 | medium | gps_cog | NCHAR | 32 | | disabled | zstd | medium | total_charge_energy | DOUBLE | 8 | | delta-d | lz4 | medium | charge_cycles_history | INT | 4 | | simple8b | lz4 | medium | charge_capacity_history | DOUBLE | 8 | | delta-d | lz4 | medium | discharge_capacity_history | DOUBLE | 8 | | delta-d | lz4 | medium | ntc1 | INT | 4 | | simple8b | lz4 | medium | ntc2 | INT | 4 | | simple8b | lz4 | medium | ntc3 | INT | 4 | | simple8b | lz4 | medium | ntc4 | INT | 4 | | simple8b | lz4 | medium | tracker_communication_status | NCHAR | 32 | | disabled | zstd | medium | battery_kind | NCHAR | 100 | | disabled | zstd | medium | dsoc | INT | 4 | | simple8b | lz4 | medium | correction_rate | INT | 4 | | simple8b | lz4 | medium | tsoc | INT | 4 | | simple8b | lz4 | medium | bsoc | INT | 4 | | simple8b | lz4 | medium | fcc | INT | 4 | | simple8b | lz4 | medium | actual_soh | INT | 4 | | simple8b | lz4 | medium | charging_sop | INT | 4 | | simple8b | lz4 | medium | discharging_sop | INT | 4 | | simple8b | lz4 | medium | task_max_delay_1ms | INT | 4 | | simple8b | lz4 | medium | task_max_delay_10ms | INT | 4 | | simple8b | lz4 | medium | task_max_delay_100ms | INT | 4 | | simple8b | lz4 | medium | task_max_delay_500ms | INT | 4 | | simple8b | lz4 | medium | task_max_time_1ms | INT | 4 | | simple8b | lz4 | medium | task_max_time_10ms | INT | 4 | | simple8b | lz4 | medium | task_max_time_100ms | INT | 4 | | simple8b | lz4 | medium | task_max_time_500ms | INT | 4 | | simple8b | lz4 | medium | empty_count | INT | 4 | | simple8b | lz4 | medium | cell_info | NCHAR | 1000 | | disabled | zstd | medium | gps_max_signal | INT | 4 | | simple8b | lz4 | medium | msg_delay_time | INT | 4 | | simple8b | lz4 | medium | battery_id | NCHAR | 32 | TAG | disabled | disabled | disabled | Query OK, 90 row(s) in set (0.021463s)
10-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值