簡體   English   中英

如何使用參數化測試用例?

[英]How to use parameterized test cases?

我正在嘗試對帶POD作為參數的類使用參數化測試。 我已經達到了這個階段:

struct TestParameters : public ::testing::TestWithParam<parameters> {
  parameters params;

  virtual void SetUp() {
    params.username = "username";
    params.host = "192.168.0.254";
  }
};

TEST_P(TestParameters, connect) {
  std::error_code ec;
  std::unique_ptr<connection> connection = make_connection(GetParam(), ec);
  ASSERT_FALSE(ec);
  ec = connection->connect();
  ASSERT_FALSE(ec);
}

INSTANTIATE_TEST_CASE_P(postgresql_tcp, connection, ::testing::Values());

我的問題是,如何通過INSTANTIATE_TEST_CASE_P傳遞parameters需要的值,以及如何將有效的parameters實例傳遞給make_connection()

看來您應該按照以下方式進行操作

INSTANTIATE_TEST_CASE_P(postgresql_tcp, connect,
                        ::testing::Values(parameters{"username", "192.168.0.254"}
                                      //, parameters{ other params here }
                                          ));

或者,您可以將std::vector<parameters>為可以動態計算的全局變量,然后將該向量的迭代器傳遞給::testing::Values()

另外,請注意,您不需要夾具類中的成員params ,因為Google Test將通過GetParam()自動提供參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM