Lexer
オブジェクトのモッククラスを作成していますが、リファクタリングが必要な場合があります。Javaのinterface/class/mockClassの命名規則?
- インタフェース
Lexer
を作成し、RealLexer
のようなものに現在のLexer
の名前を変更します。私は2つのオプションがあります。MockLexer
はLexer
を実装し、メソッド呼び出しはLexer
のいずれかをとります。私はあなたの貴重なLexer
クラスがモッククラスがないとわからないと意味がないものに改名されることを嫌います。 - インタフェース
LexerInterface
を作成してください(私はそれがInterface
という名前になっていますので、私はすでに嫌いですが)自分自身が現状のままであることを可能にします。Lexer
MockLexer
はLexerInterface
を実装します。別の欠点は、メソッドコールがLexerInterface
をparamsとして取ることです。
どちらのオプションも私には悪い匂いがするので、基準を私に決めさせるように思った。誰もこれを経験していますか?
「RealLexer」はなぜですか? 'MockLexer'の名前は、テストのためだけに使用されるので、あなたが望むものであれば名前を付けてください。おそらく 'Lexer'インターフェースとデフォルトインプラントの' DefaultLexer' –
私はMockLexerがすぐにメンテナに通知するので、MockLexerはMockテストにしか使われないと言います。しかし、私は「リアル」ではなく「デフォルト」が好きです。 – munchybunch
実際、モックオブジェクトに 'モック 'を追加することをお勧めします。 –