gpt4 book ai didi

java - 对打印方法进行单元测试

转载 作者:行者123 更新时间:2023-12-01 04:58:17 27 4
gpt4 key购买 nike

如何创建一个类,向 map 添加一些内容并显示它。

考虑到所有代码通常都需要用单元测试覆盖,并且测试显示数据的方法是一个问题,我想知道最好的界面。

这是我的第一个想法:

class MyFirstProgram {
private Map<String, String> map = new HashMap<String,String>();
public int insertData(...) {...}
public void displayData(...) {...}
}

...但是不可能测试任何有关检索的内容,并且存在这种显示方法...所以我想:

class MyFirstProgram {
private Map<String, String> map = new HashMap<String,String>();
public int insertData(...) {...}
private Map<String, String> retrieveData(...) {...}
public int displayData(...) {...call ; return status}
}

在这里可以用反射测试私有(private)方法,但仍然有这个显示方法......

对设计有什么想法吗?

最佳答案

务实的方法是允许访问Map(通过带有注释//用于单元测试的默认/包访问方法,并访问它。实际上,更好的是,将该方法命名为forUnitTestGetMap() 使其更加清晰,避免与标准 getXXX 命名约定混淆。我通常只需在 map 上调用 toString() 并与它的内容进行比较就可以了应该是,YMMV。如果您的 insertData() 只是调用 HashMap 上的标准方法(例如 put()),那么您可以并且应该测试的内容不多,因为大部分代码是Java库代码。

或者,在 displayData() 方法中,它是否创建数据的替代表示形式?例如 XML、JSON,也许是 JPanel?如果是这样,请查看数据的内容是否正确。显然,XML 比 JPanel 简单得多,但您仍然可以执行一些操作,例如检查 JPanel 是否有 3 个子级,第一个是名为“OK”的按钮...

关于java - 对打印方法进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749690/

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