您好我有一些课程,例如“数学”: 头文件:
class Math
{
public:
Math(void);
double returnPi();
~Math(void);
};
和cpp文件:
#include <windows.h>
#include "Math.h"
Math::Math(void)
{ Sleep(500) ;}
Math::~Math(void)
{ Sleep(500) ;}
double Math::returnPi()
{ Sleep(1000) ;
return 3.14159265;
}
我也测试了这个文件:
#include "..\gtest\gtest.h"
#include "Math.h"
TEST(Speed, Math)
{
Math *m=new Math();
EXPECT_LT(3.14,m->returnPi());
}
当我运行此测试时,我看到测试通过,此测试的时间是1500毫秒,我如何排除总测试时间,创建课程所用的时间?
答案 0 :(得分:1)
你不能这样做吗?
#include "..\gtest\gtest.h"
#include "Math.h"
Math math;
TEST(Speed, Math)
{
Math *m=&math;
EXPECT_LT(3.14,m->returnPi());
}
答案 1 :(得分:0)
创建一个构建Math类的测试夹具,然后让测试使用它。 GTest将为每个测试创建一个新夹具。
class MathTest : public ::testing::Test
{
Math* math;
virtual void SetUp()
{
math = new Math();
}
virtual void TearDown()
{
delete math;
}
};
TEST_F(MathTest, OperatorTest)
{
EXPECT_LT(3.14,math->returnPi());
}
但实际上我认为你的问题有点瑕疵,你不应该从总测试时间中排除它。如果您尝试对特定操作进行概要分析,则应使用计时器并输出正在进行概要分析的已用时间。总测试时间应该是运行测试所需的时间(当然还包括设置时间)。