java - void 方法的单元测试和断言案例

标签 java unit-testing

我正在尝试为 void 方法创建一些单元测试。基本上,该方法旨在显示系统用户的角色并在软件中实现它。

这是方法:

public void setPersonObj(Person typeObj)
{
    this.typeObj = typeObj;
    createMain();
}

我如何在使用单元测试检查此方法的单独类中创建断言案例?

非常感谢

最佳答案

如果该方法是void,它显然有一些副作用。否则它将是空操作。因此您别无选择,需要验证这些副作用。

如何测试这些副作用取决于您使用的技术和测试方法:

  • 如果该方法调用一些其他协作者/对象,模拟它们并随后验证模拟

  • 如果它改变了一些其他组件的状态(添加元素到集合,修改字段)查询并断言它们

  • 如果它在磁盘/数据库上存储了一些东西,也查询它们

  • 如果在Swing中显示一些窗口,你需要使用Swing测试框架,如Window Licker

  • 如果...您可以提供更多技术详细信息

顺便说一句,执行一些额外的不相关逻辑的 setter 是一种代码味道。维护此类代码的人会发现很难弄清楚这个无辜的 setPersonObj() 除了...设置之外还做了其他事情。

此外,所有这些名称:PersonPersonObjtypeObj 应该相同,以确保与 JavaBean 规范的一致性和兼容性。

关于java - void 方法的单元测试和断言案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230150/

相关文章:

unit-testing - 使用 Pester 测试 PowerShell 脚本时如何模拟输出文件?

java - 将 Jtable 添加到 jframe 中

java - Spock 抛出异常测试

java - 为什么我不能导入 org.apache.spark.sql.DataFrame

java - 如何将 recyclerview 适配器中的文本更新为其他布局 xml

c# - 如何对BackgroundWorker + PRISM InteractionRequest进行单元测试?

typescript - 使用 TypeScript 的 Jest 测试无法识别导入别名

javascript - 在AngularJS中使用 Protractor 单击单元测试中的超链接

java - Swing:有没有一种简单的方法可以让 1 个组件忽略布局管理器?

java - 如何将字段绑定(bind)到bean vaadin中的外键