我一直在阅读当你尝试在项目中实现单元测试时,静态方法,静态类和单例是邪恶的.在遵循TDD范例时,我是否应该忘记它们曾经存在过并且从未再次使用它们,或者有时可以使用它们吗?
我最近在与JUnit和Mockito合作开发TDD.出于某种方法,我正在使用Util类(在项目上下文中具有方法的实用程序类).我面临的问题是如何在Mockito中模拟这些类.我无法在Mockito中找到关于静态方法的实现.有人建议在Mockito上使用PowerMock,但不会取代我的JunitMockitoRunner吗?
我使用静态函数的方式是:
public void doSomething(int x){
//Some code
Y y = Util.someStaticMethod(x);
//Some more code
}
Run Code Online (Sandbox Code Playgroud)
编辑:我也读到某处使用静态方法是代码气味,是一个糟糕的设计的标志.那么我应该如何重构设计以及我将获得哪些优势呢?