2011-08-20 74 views
7

我一直在使用MSpec一段時間,我非常喜歡它。我發現要讓ReSharper識別我的規格,我需要使用SubjectAttributeMSpec,我應該在我的[Subject()]屬性中放置什麼?

我想知道,最好的東西放在[Subject()]屬性?

如果我正在做BDD,那麼我不知道測試的類型,所以[Subject(typeof(thingy))]似乎爲時過早。可以稍後添加,我想一旦代碼被寫入。

這樣就保留了文本版本[Subject("some text")]。但是放在那裏最好的東西是什麼?

無論我做什麼,它似乎都不會影響我在ReSharper中獲得的輸出。我認爲這在一定程度上取決於個人喜好,但我想知道這裏是否有任何約定?

回答

11

你不需要申請SubjectAttribute讓ReSharper識別上下文和規範,包含It字段的類就足夠了。但是,如果你想ReSharper的支持爲MSpec類型和字段的自定義命名約定(Because等),你需要應用SubjectAttribute

  1. 定義自定義命名的ReSharper的約定|選項| 語言/公共部分|命名風格|高級設置

    添加用戶定義的命名規則時,向下滾動列表以查看MSpec實體。

  2. 在ReSharper中啓用MSpec註釋|選項|代碼檢查/代碼註釋部分

    註解+ SubjectAttribute(即使沒有自定義命名規則)阻止ReSharper將MSpec的字段標記爲未使用。或者,禁用項目設置中的警告169。

Subject作爲元數據描述您的上下文,例如(編寫單元測試時),您的選擇,或者是兩者的字符串,可以使用被測系統。這些信息將在HTML和ReSharper輸出中報告。它現在不工作,我懷疑這是ReSharper亞軍中的bug 6.0。

與字符串一樣,基本上可以放任何你想要的東西。我會建議使用該主題按功能分組您的規格。

主題:登錄

上下文:當使用有效證書登錄,當與無效的憑證登入等

有一個example in my GitHub repository

+0

啊,感謝您提供的信息,尤其是鏈接樣本,我沒有找到這些信息,我相信他們會很有價值。我想也許這個鏈接值得更加突出的宣傳:) –

+0

如果你想爲我們的自述文件貢獻ReSharper特定的文檔,請高度讚賞拉請求:) –

相關問題