我是一個採用C++類的新手程序員。爲什麼我不能使用CppUnitLite測試CHECK_DOUBLES_EQUAL
該任務是使用stringstream編寫一個double,然後使用CppUnitLite中的一個宏進行檢查。我想用CHECK_DOUBLES_EQUAL來檢查寫入操作中的double,但是VS中的intellisense說它不會工作。在下面的示例中,我已經離開了工作,一個簡單的CHECK_EQUAL。這還不夠好。我需要使用CHECK_DOUBLES_EQUAL作爲浮點。
我已經試過CHECK_DOUBLES_EQUAL(dvalue,svalue,0.1)但是不起作用。我也嘗試使用預期的實際值,但這也不起作用。
CHECK_DOUBLES_EQUAL確實可以用於讀取操作(第二個示例),但是我無法讓它在第一個工作。
這是爲什麼?我究竟做錯了什麼?
TEST(writeDouble, stringStream)
{
std::stringstream sValue;
double dvalue =34.9;
sValue << dvalue;
if (!sValue)
{
CHECK_FAIL("conversion failed");
}
CHECK_EQUAL("34.9", sValue.str());
}
TEST(readDouble, stringStream)
{
std::stringstream sValue("34.9");
double dvalue;
sValue >> dvalue;
if (!sValue)
{
CHECK_FAIL("conversion failed");
}
CHECK_DOUBLES_EQUAL(34.9, dvalue, 0.1);
}
你還可以發佈CHECK_DOUBLES_EQUAL的代碼嗎? – APerson 2015-02-09 17:11:26
什麼是CHECK_DOUBLE_EQUAL? – RedX 2015-02-09 17:11:31
'CHECK_DOUBLES_EQUAL'不是標準的C++,也沒有向我們顯示它的功能,或者你的意思是「無法正常工作」,不幸的是我們可以做很多事情來幫助你。 – 2015-02-09 17:11:38