2011-08-20 68 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特定的文档,请高度赞赏拉请求:) –

相关问题