我刚开始使用gtest在C ++中进行单元测试,我对void方法的测试有疑问。
假设我有一个方法void printNames(),它打印一个班级中所有学生的名字。
使用测试,有没有办法检查方法是否正在打印正确的名称?
或者,甚至需要测试这样的东西吗?
我可以使方法返回字符串,然后使用一个字符串测试返回的字符串,该字符串连接类中学生的所有名称。那会是一个“好”的解决方案吗?
答案 0 :(得分:3)
我可能会写printNames
来将ostream作为参数,可能会将std::cout
作为默认值。
当您想要测试时,请提供对stringstream
的引用,以便您可以捕获输出并与预期结果进行比较。