1

私は静的メソッドを使用するのが本当に好きです(特にヘルパークラスの場合)。しかし、静的メソッドはスタブ可能ではないため、最終的には悪い習慣になりますね。したがって、静的メソッドの使用の利便性とテスト容易性のどちらかを選択する必要があります。妥協点はありますか?

4

2 に答える 2

9

それは静的メソッドが何をするかに依存します。

それは本当にスタブ可能でなければならないものですか?データアクセス、長時間実行操作などのように、または.ToSlug()のようなヘルパーメソッドを意味しますか?

前者の場合は、テストのしやすさやテストの速度を上げるために、インスタンスメソッドにします。

後者の場合は、静的なままにして、正しいことを確認します。

于 2010-06-06T10:21:51.953 に答える
2

静的メソッドが特定の入力に対して常に同じ結果を返すことを保証でき、それらがヘルパーメソッド(入力の変換または変換->副作用なしの出力)がある唯一の理由である場合、問題は発生しません。追加のキックについては、それらを拡張メソッドにすることができます(c#3.0以降)。

于 2010-06-06T10:25:13.073 に答える