使用TDD方法并避免使用Java静态方法

我刚收到一些关于作业应用程序 Java编码练习的反馈.他们不喜欢解决方案和反馈中陈述的两个问题(我非常感激,因为它给出了非常罕见的反馈):

>显然,我没有使用TDD方法.
>我过度使用静态方法,我知道静态方法是反OO但我只在验证和util类型方法中使用它们.

这里有两个问题:

没有使用TDD方法有什么可能的迹象?

哪种编码风格或模式可以替代静态方法

在前两个回复后,我有一个问题.

您是否同意使用静态方法只会在限制代码的可测试性时出现问题,而不是在自身方法中出现问题.

因此,如果静态方法不限制我的代码的可测试性,那么回到我的求职应用练习解决方案是否仍然不好用?我的验证方法非常简单’Validator.notNull(p,“paramName”)’现在为什么我要模仿它?

非常感谢.

解决方法

不使用TDD的告示标志是对协作者使用静态方法和静态类成员.您不能覆盖静态方法,因此您无法替换模拟以单独使用此类方法来测试类.

您可以使用依赖项注入,而不是在协作者上使用静态协作者或静态方法.在一个简单的编码练习中,您将通过构造函数或通过手动设置器注入依赖项.在现实生活中,您可以使用可用的依赖框架之一.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...