我正在为 Lexer
对象创建模拟类,我认为我可能需要进行一些重构。我有两个选择:
- 创建一个接口(interface)
Lexer
,并将当前的Lexer
重命名为类似RealLexer
的名称。让MockLexer
实现Lexer
,并且方法调用采用Lexer
类型的任何内容。我不喜欢我宝贵的Lexer
类现在被重命名为一些没有意义的东西,如果你不知道有一个模拟类。 - 创建一个接口(interface)
LexerInterface
(我已经不喜欢它了,因为它的名称中有Interface
),但允许我自己保留当前的 Lexer
就是这样。MockLexer
然后实现LexerInterface
。另一个缺点是方法调用将LexerInterface
作为参数。
这两种选择对我来说都很糟糕,所以我想我应该让标准为我做决定。有没有人有这方面的经验?
最佳答案
我肯定会投票赞成使用 Lexer
作为您的接口(interface)名称。添加一些关于如何或为什么您的实现作为名称的一部分的信息怎么样?
例如:
StringParsingLexer
TokenizingLexer
SingleThreadedLexer
{ThirdPartyLibraryName}DelegatingLexer
此外,您真的需要显式构造一个 MockLexer
吗?使用类似 Mockito 的框架可以使您的测试更加容易和快速;您可以通过以下方式轻松开始:
Lexer mockLexer = Mockito.mock(Lexer.class);
Mockito.when(mockLexer.doFoo()).thenReturn("bar");
关于java - Java 中接口(interface)/类/模拟类的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884502/