我正在使用测试驱动开发方法编写c ++程序。 我有一个使用控制台输出的功能。 我想编写一个测试,它能够测试控制台输出是否与预期输出相同。 我看到这可以解决,应该检查。但我在这个论坛上看到的解决方案不是用c ++而是用其他语言。我想它也可以在C ++中完成。
任何提示都会有很大的帮助。
答案 0 :(得分:3)
不要直接写入控制台;写入提供给函数的流。
测试可以提供stringstream
,并从中提取输出。真正的程序可以提供cout
(或其他东西)来获得实际输出。
一般情况下:编写与抽象接口交互的代码,可以为测试而不是具体实现进行模拟,而不是。
答案 1 :(得分:0)
我可以就使代码可测试的一般方法向您提出建议:您可以做的就是将输出流作为参数传递给您的单元,这样在测试设置中您可以传递一个可以进行检查的方法,并在生产中设置标准输出...