我是 Visual Studio 2017 上 Boost.Test 的新手。
我正在尝试使用以下测试来测试一种方法:
#define BOOST_TEST_MODULE astroTimeTests
#include <boost/test/included/unit_test.hpp>
#include <ctime>
#include "../../AstroTime/Convert.h"
struct TestFixture
{
Convert convert_instance;
TestFixture()
: convert_instance()
{}
~TestFixture() = default;
};
BOOST_FIXTURE_TEST_SUITE(TestConvert, TestFixture)
BOOST_AUTO_TEST_CASE(julianToGreenWichCase)
{
// http://www.onlineconversion.com/julian_date.htm
tm day1 = { 12, 28, 16, 2, 10, 119, 0, 0, 0};
BOOST_REQUIRE_EQUAL(day1, convert_instance.JulianToGreenWich(2458790.18625f));
}
BOOST_AUTO_TEST_SUITE_END()
JulianToGreenWich
从 .返回一个tm
结构ctime
。
但是我做错了,因为我收到以下错误:
错误 C2678 二进制“==”:未找到采用“const Left”类型的左侧操作数的运算符(或没有可接受的转换)
错误 C2338 类型必须实现 operator<< 才能打印
错误 C2679 二进制“<<”:未找到采用“const T”类型右侧操作数的运算符(或没有可接受的转换)
如何测试两个值day1
和结果JulianToGreenWich
是否相等?