我一直在使用MSpec,我真的很喜欢它。我发现要让ReSharper识别我的规格,我需要使用SubjectAttribute
。
我想知道,[Subject()]
属性中最好的是什么?
如果我正在做BDD,那么我不知道被测试的类型,所以[Subject(typeof(thingy))]
似乎为时过早。可以在以后添加,我想一旦编写代码。
这样就留下了文本版本[Subject("some text")]
。但放在那里最好的是什么?
无论我做什么,它似乎都不会影响我在ReSharper中获得的输出。我想在某种程度上这取决于个人偏好,但我想知道这里是否有任何约定?
答案 0 :(得分:11)
您无需应用SubjectAttribute
让ReSharper识别上下文和规范,包含It
字段的类就足够了。但是,如果您希望ReSharper支持MSpec类型和字段(Because
等)的自定义命名约定,则需要应用SubjectAttribute
:
在ReSharper中定义自定义命名约定选项| 语言/公共部分|命名风格|高级设置
添加用户定义的命名规则时,向下滚动列表以查看MSpec实体。
在ReSharper中启用MSpec注释选项|代码检查/代码注释部分
注释+ SubjectAttribute
(即使没有自定义命名规则)也会阻止ReSharper将MSpec的字段标记为未使用。或者,在项目设置中禁用警告169.
Subject
用作描述上下文的元数据,例如,您可以使用被测系统(编写单元测试时),您选择的字符串或两者。这些信息将在HTML和ReSharper输出中报告。它现在不起作用,我怀疑这是ReSharper跑步者中的bug 6.0。
与字符串一样,你基本上可以放任何你想要的东西。我建议使用主题按功能对您的规格进行分组。
主题:登录
上下文:使用有效凭据登录时,使用无效凭据等登录时