0

enum classテストフィクスチャからを参照しようとすると、エラーでコンパイルに失敗します./gtest_mcp23s17.cpp:25:52: error: no type named 'HW_ADDR_6' in 'mcp23s17::HardwareAddress' TC_mcp23s17 _gpio_x(mcp23s17::HardwareAddress::HW_ADDR_6); ~~~~~~~~~~~~~~~~~~~~~~~~~~~^

ただし、テスト自体に参照を残すと (他のすべてのコードはそのままにしておきます)、エラーなしでコンパイルされ、期待どおりにテストが実行されます。これは GoogleTest のバグですか、それともテストに関する限り、このシナリオの違いは何ですか?

テスト (汎用): [コンパイル]

TEST(Construction, WHENObjectIsConstructedTHENAddressParameterIsStored) {
    TC_mcp23s17 gpio_x(mcp23s17::HardwareAddress::HW_ADDR_6);
    EXPECT_EQ(0x4C, gpio_x.getSpiBusAddress());
}

テスト フィクスチャ: [COMPILES]

TEST_F(SPITransfer, WHENPinModeHasNotBeenCalledTHENTheCallersChipSelectPinIsHigh) {
    TC_mcp23s17 gpio_x(mcp23s17::HardwareAddress::HW_ADDR_6);
    EXPECT_EQ(HIGH, getPinLatchValue(SS));
}

テスト フィクスチャ (フィクスチャ クラスで宣言された gpio_x を使用): [失敗]

class SPITransfer : public ::testing::Test {
  protected:
    TC_mcp23s17 gpio_x(mcp23s17::HardwareAddress::HW_ADDR_6);
    ...
}
TEST_F(SPITransfer, WHENPinModeHasNotBeenCalledTHENTheCallersChipSelectPinIsHigh) {
    EXPECT_EQ(HIGH, getPinLatchValue(SS));
}
4

1 に答える 1