【发布时间】:2017-09-01 06:16:29
【问题描述】:
背景:我正在为传入流量编写一个会话表。此表应包含所有活动的 UDP/TCP 连接。
我正在使用 googletest 包来测试我的实现。 我准备了一个基于夹具的参数化测试,格式如下:
class SessionTest - initialize all staff.
struct ConnectionInfo - holds set of connection parameters (IPs, ports, etc..)
class SessionTestPrepare : SessionTest , testing::WithParamInterface<ConnectionInfo> - initialization.
TEST_P(SessionTestPrepare, test) - holds the test cases and logic.
INSTANTIATE_TEST_CASE_P(default, SessionTestPrepare_ testing::Values(
ConectionInfo{},
ConectionInfo{},
ConectionInfo{},
)
我注意到每次测试新参数时,都会调用 SessionTest 构造函数和 Setup 函数(当然还有析构函数和 TearDown)。
注意:我的 sessionTable 在这里声明和初始化。
- 有没有办法避免在每组参数测试后调用 SetUp 和 TearDown?
- 有没有办法在每次测试后保持会话表的状态而不使其成为全局(即在测试第二个连接参数时,第一个仍然在表中)?
【问题讨论】:
标签: googletest