![](/img/trans.png)
[英]Google Test: Parameterized tests which use an existing test fixture class?
[英]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.