gpt4 book ai didi

java - 如何使用 print 语句对代码进行单元测试?

转载 作者:行者123 更新时间:2023-12-02 05:00:45 26 4
gpt4 key购买 nike

很多时候,技术面试官会问“打印一些东西”之类的问题。例如: http://www.geeksforgeeks.org/given-a-binary-tree-print-all-root-to-leaf-paths/

以下代码将要求打印从根到叶的所有路径。

如何对这样的代码进行单元测试?

一种解决方案是返回所有路径的数据结构。但面试官会斥责我消耗了巨大的空间复杂度?

最佳答案

一种解决方案是传递 PrintStream按照你的方法。当您从 main 调用它时,传递 System.out,如下所示:

public static void main(String[] args) {
Tree tree = ...
TreePrinter printer = ...
printer.printTree(System.out);
}

当您从单元测试代码中调用该方法时,请向其传递 PrintStream 的子类,该子类收集内存中的输出,并将其与预期输出进行比较:

@Test
public void testTreePrinter() {
Tree tree = ...
TreePrinter printer = ...
MyTestStream testStream = ...
printer.printTree(testStream);
assertEquals(expectedOutput, testStream.collectedOutput());
}

关于java - 如何使用 print 语句对代码进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304308/

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