Nil*_*ils 10 c++ unit-testing googletest
我正在使用Google Test来测试我的C++项目.但是,有些情况需要访问argc和argv才能加载所需的数据.
在该main()方法中,初始化时,将argc和argv传递给测试的构造函数.
testing::InitGoogleTest(&argc, argv);
Run Code Online (Sandbox Code Playgroud)
我如何在测试后期访问它们?
TEST(SomeClass, myTest)
{
// Here I would need to have access to argc and argv
}
Run Code Online (Sandbox Code Playgroud)
sbi*_*sbi 10
我不知道谷歌的测试框架,所以可能有更好的方法来做到这一点,但这应该做:
//---------------------------------------------
// some_header.h
extern int my_argc;
extern char** my_argv;
// eof
//---------------------------------------------
//---------------------------------------------
// main.cpp
int my_argc;
char** my_argv;
int main(int argc, char** argv)
{
::testing::InitGoogleTest(&argc, argv);
my_argc = argc;
my_argv = argv;
return RUN_ALL_TESTS();
}
// eof
//---------------------------------------------
//---------------------------------------------
// test.cpp
#include "some_header.h"
TEST(SomeClass, myTest)
{
// Here you can access my_argc and my_argv
}
// eof
//---------------------------------------------
Run Code Online (Sandbox Code Playgroud)
Globals并不漂亮,但是如果你拥有的是一个测试框架,它不允许你将一些数据main()传递给你拥有的任何测试函数,那么他们就可以完成这项任务.
| 归档时间: |
|
| 查看次数: |
8195 次 |
| 最近记录: |