7

私は MSpec をしばらく使用していますが、とても気に入っています。ReSharper に自分の仕様を認識させるには、SubjectAttribute.

私は疑問に思っていますが、[Subject()]属性に入れるのに最適なものは何ですか?

BDD を行っている場合、テスト対象の型がわからないため、[Subject(typeof(thingy))]時期尚早に思えます。コードが書かれたら、後で追加することができます。

これで、テキスト バージョンが残ります[Subject("some text")]。しかし、そこに置くのに最適なものは何ですか?

私が何をしても、ReSharper で得られる出力には影響しないようです。これはある程度個人的な好みによるものだと思いますが、ここに何らかの慣習があるのだろうか?

4

1 に答える 1

11

ReSharper にコンテキストと仕様を認識させるために申請する必要はありません。フィールドをSubjectAttribute含むクラスでIt十分です。ただし、ReSharper で MSpec の型とフィールド ( Becauseet al) のカスタム命名規則をサポートする場合は、次を適用する必要がありますSubjectAttribute

  1. ReSharper | ReSharper でカスタム命名規則を定義する オプション | 言語/共通セクション | 命名スタイル | 高度な設定

    ユーザー定義の命名規則を追加する場合、リストを下にスクロールして MSpec エンティティを表示します。

  2. ReSharper で MSpec アノテーションを有効にする | オプション | コード インスペクション/コード アノテーション セクション

    注釈 + SubjectAttribute(カスタム命名規則がなくても) は、ReSharper が MSpec のフィールドを未使用としてマークするのを防ぎます。または、プロジェクト設定で警告 169 を無効にします。

Subjectコンテキストを説明するメタデータとして機能します。たとえば、System Under Test (単体テストを作成する場合)、選択した文字列、またはその両方を使用できます。これらの情報は、HTML および ReSharper 出力で報告されます。現在のところ動作しません。これは6.0 の ReSharper ランナーのバグであると思われます。

文字列と同様に、基本的には何でも好きなものを入れることができます。件名を使用して、仕様を機能別にグループ化することをお勧めします。

件名: ログイン

コンテキスト: 有効な資格情報でログインする場合、無効な資格情報でログインする場合など。

私の GitHub リポジトリに例があります。

于 2011-08-21T10:29:34.160 に答える