我在课堂上重载了左移运算符并且输出工作正常,例如,当我有一行说 cout << obj; 我将输出用逗号分隔的字段。
ostream& operator<<(ostream& output, const MyClass& obj)
{
output << obj.field1 << ", " << obj.field2;
return output;
}
我想为此操作编写一个测试用例,但我不知道如何将返回的结果与 cxxtest 中的预期结果进行比较。我尝试了以下方法,但没有奏效:
TS_ASSERT_EQUALS(cout << "1, 50.0", cout << obj);
我应该使用不同的 cxxtest 操作还是更改 TS_ASSERT_EQUALS 中的参数传递机制?
请注意,当我输出以下行时,我会得到相同的结果:
cout << obj;
cout << "1, 50.0";
注意:当我尝试编译程序时,由于 TS_ASSERT_EQUALS 失败,我得到了一堆编译器错误。