3
我試圖轉換Gtest下的測試用例來使用測試夾具,因此我可以有一個共同的設置,因爲我添加了更多的測試。這是,然而,導致一個錯誤:Gtest:預期的班級名稱之前'{'
test_integrate.cc:4:47: error: expected class-name before '{' token
class IntegratorTest : public ::testing::test {
此故障是什麼,我無法理解,因爲它通常從我的經驗,一個圓形的進口出現了,並出現了進口沒有變化,而不是工作代碼。完整的代碼如下:
#include "gtest/gtest.h"
#include "utils/integrate.hpp"
class IntegratorTest : public ::testing::test {
protected:
Integrator integ;
VectorXf v, xdot;
float cur_time;
virtual void SetUp() {
integ = Integrator(1.0);
v = VectorXf::Ones(10);
xdot = VectorXf::Ones(10);
cur_time = 0.0;
}
};
TEST_F(IntegratorTest, Euler) {
// Use e^t for a simple test algorithm
for (short i = 1; i < 5; i++) {
v = integ.Euler(v, xdot, cur_time);
xdot *= 2.0;
EXPECT_EQ(i, cur_time);
EXPECT_EQ(xdot, v);
}
}
如果我刪除夾具和去測試用例中初始化設置,代碼編譯就好了。這個工作代碼如下。
#include "gtest/gtest.h"
#include "utils/integrate.hpp"
TEST(Integrate, Euler) {
Integrator integ = Integrator(1.0);
VectorXf v = VectorXf::Ones(10);
VectorXf xdot = VectorXf::Ones(10);
float cur_time = 0.0;
// Use e^t for a simple test algorithm
for (uint16_t i = 1; i < 5; i++) {
v = integ.Euler(v, xdot, cur_time);
xdot *= 2.0;
EXPECT_EQ(i, cur_time);
EXPECT_EQ(xdot, v);
}
}
我似乎無法找到任何解釋我如何解決這個錯誤,使我可以編譯。
萬一它可能無所謂,編譯我跑GCC 5.3.0通過自制軟件安裝在了最新埃爾卡皮坦OS X.
哇。我的部分總derp。甚至沒有想到錯誤可能是這樣的錯字的結果。感謝您的發現。 –
在IBM上輸字錯誤!請參閱此處:http://www.ibm.com/developerworks/aix/library/au-googletestingframework.html#list1 – patrickvacek