gpt4 book ai didi

java - 为了单元测试添加 'Getters' 和 'Setters'?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:06 26 4
gpt4 key购买 nike

我目前正在处理一些非常不稳定的代码。代码本身不是遗留的,但它使用的框架是遗留的并且非常糟糕。

我想开始为一个类编写一些 junit 测试(为了改变!),但为了有效地做到这一点,我需要添加一些 getter 和 setter。

我需要 setter 以便我可以检查类中私有(private)变量的状态(这里进行的一种状态机设计模式)并且我需要 getter 来模拟某些方法中的私有(private)变量是什么。

你们认为为了能够编写单元测试而将 getter 和 setter 添加到类中是坏的、好的还是可以接受的?

最佳答案

我会避免它。一般来说,您应该尽可能地构建事物以避免需要测试私有(private)变量并坚持应用程序的其余部分将暴露的交互。这通常是公共(public)方法/属性和使用伪造/替身的 protected 方法。

单元测试的目的是验证被测对象是如何交互的,不一定是实现细节。基本上,输入 x,我应该得到输出/效果 y。如果您执着于测试 x 是如何产生 y 的,那么您将冒着让您的类变得不灵活而无法更改的风险。你的类的每一次重构都可能破坏你的测试,即使输出和最终结果是一样的。

关于java - 为了单元测试添加 'Getters' 和 'Setters'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22722930/

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