gpt4 book ai didi

c++ - 如何比较 C++ 中的两个 ostream 对象是否相等?

转载 作者:行者123 更新时间:2023-12-02 03:23:41 27 4
gpt4 key购买 nike

我在类中重载了左移运算符,并且输出工作正常,因此例如当我有一行内容为 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 失败,出现了一堆编译器错误。

最佳答案

即使它确实编译了,您基本上也是在将 cout 与其自身进行比较......

尝试写入两个不同的 std::stringstream,提取它们的字符串值,然后比较它们。

如果您还需要测试 ostream 标志,请定义比较函数并使用 TS_ASSERT_RELATION

关于c++ - 如何比较 C++ 中的两个 ostream 对象是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com