web-dev-qa-db-ja.com

このヘルパークラスの名前を教えてください。

通常、単体テストを作成するときは、拡張メソッドを含むヘルパークラスを作成します。これらのメソッドは、タイプするのが面倒なものの汎用データを生成するためにのみ使用します。通常、これらのクラスにはテスト中のクラスに関連する名前を付けます。たとえば、TestHelper.csのようなパターンに従います。

私は、ヘルパークラスが優れたデザインを促進しないことを読みました。しかし、私はSOLIDの原則をかなりよく知っており、説明されている方法で「ヘルパー」を使用することがどのような原則にも違反しているのかわかりません。

私が持っている問題は私の「TestHelper」の名前にあると思います...新しい命名方式を思いついただけなのか、それともSOLID原則に違反しています)ヘルパー?

5
Robotsushi

これはまったくSOLIDではありませんが、 Object Mother パターンを検討することをお勧めします。これは、同じ問題を同じように解決しますandには、クラス名で使用するファンキーなサフィックスを追加できるというボーナスがあります。

さらに、すべてのパターンと同様に、パターンには名前があるため、チームの初心者はObject Motherという用語をグーグル検索して、豊富な情報を見つけ、それが何をしたのかを説明できます。

5
pdr

これがSOLIDにどのように違反しているのか、またはSOLIDに関連しているのか)はわかりません。

クラスの命名に関しては、テストデータを生成することを目的とする場合、<test name>DataGeneratorのような命名規則とGetTestData拡張メソッドを使用して、それを可能な限り明確にすることができます。

3
Oded

ここでは他のいくつかの提案を使用できます:

  • モック
  • [AssemblySetUp] *
  • [FixtureSetUp] *

*(NUnitから、または他のフレームワークで同様)

1
oleksii