Java 静态枚举的Mockito mock方法

Java 静态枚举的Mockito mock方法,java,unit-testing,enums,mockito,Java,Unit Testing,Enums,Mockito,我的枚举如下: CSVHandler公共类{ 公共枚举表{ 用户(“USER.csv”); 私有最终字符串表; 表(字符串表){ this.table=表格; } 公共字符串getLocation(){ 返回此.table; } } //CSVHandler方法 } 表格用于告知CSVHandler哪些文件可用 现在,在我创建了CSVHandler的接口之后,我想在开始实现它们之前创建所有的测试,但是,这就是我要做的 我想模拟这个枚举,因此CSVHandler不能访问生产环境的.csv文件。我

我的枚举如下:

CSVHandler公共类{
公共枚举表{
用户(“USER.csv”);
私有最终字符串表;
表(字符串表){
this.table=表格;
}
公共字符串getLocation(){
返回此.table;
}
}
//CSVHandler方法
}
表格
用于告知CSVHandler哪些文件可用

现在,在我创建了CSVHandler的接口之后,我想在开始实现它们之前创建所有的测试,但是,这就是我要做的

我想模拟这个枚举,因此CSVHandler不能访问生产环境的.csv文件。我想隔离CSVHandler。因此,类应该访问仅用于测试目的的.csv文件

经过一些研究,我了解到Mockito2.x提供了测试枚举的功能,尽管我缺少示例


有没有人能提供一个非常简单的示例来说明如何正确隔离CSVHandler?

模拟枚举?模拟枚举有什么用?@Stultuske模拟枚举的目的是确保CSVHandler不会访问任何生产代码的文件。我已经创建了一些应该使用的test.csv文件。这就是我想要实现的。那么你不应该选择一个“读起来”不错,但绝对不适合“易于测试”的解决方案。你的代码是硬耦合在一起的,所以绝对不应该耦合在一起。而不是使用备份的枚举;为什么不定义一些表示所需功能的接口?然后使用依赖项注入以某种方式将该接口的一个实例获取到CSVHandler类中。当然,你可以让mocking在这里工作。但是请相信我:你在错误的地方投入了精力。你写了“难以测试的代码”,现在你想用模拟锤来“修复”这个问题。错误的方法。退一步,重新设计您的产品设计以便于测试。请参阅我的最新评论。