【问题标题】:MSpec, what should I put in my [Subject()] attributes?MSpec,我应该在我的 [Subject()] 属性中添加什么?
【发布时间】:2011-08-20 23:58:24
【问题描述】:

我使用 MSpec 已经有一段时间了,我真的很喜欢它。我发现要让 ReSharper 识别我的规范,我需要使用 SubjectAttribute

不过我想知道,在 [Subject()] 属性中放入什么最好?

如果我在做 BDD,那么我不知道被测试的类型,所以[Subject(typeof(thingy))] 似乎为时过早。可以稍后添加,我想一旦编写了代码。

剩下的是文本版本,[Subject("some text")]。但是放在那里最好的东西是什么?

无论我做什么,它似乎都不会影响我在 ReSharper 中获得的输出。我想这在某种程度上取决于个人喜好,但我想知道这里是否有任何约定?

【问题讨论】:

    标签: tdd bdd mspec


    【解决方案1】:

    您无需应用 SubjectAttribute 即可让 ReSharper 识别上下文和规范,包含 It 字段的类就足够了。但是,如果您希望 ReSharper 支持 MSpec 类型和字段的自定义命名约定(Because 等),您需要应用 SubjectAttribute

    1. 在 ReSharper 中定义自定义命名约定 |选项 | 语言/公共部分 |命名风格 |高级设置

      当您添加用户定义的命名规则时,向下滚动列表以查看 MSpec 实体。

    2. 在 ReSharper 中启用 MSpec 注释 |选项 |代码检查/代码注释部分

      注释 + SubjectAttribute(即使没有自定义命名规则)会阻止 ReSharper 将 MSpec 的字段标记为未使用。或者,在项目设置中禁用警告 169。

    Subject 用作描述上下文的元数据,例如,您可以使用被测系统(在编写单元测试时)、您选择的字符串,或两者兼而有之。这些信息将在 HTML 和 ReSharper 输出中报告。它现在不起作用,我怀疑这是 6.0 的 ReSharper 运行器中的 bug

    与字符串一样,您基本上可以在其中放置任何您想要的东西。我建议使用该主题按功能对您的规格进行分组。

    主题:登录

    上下文:使用有效凭据登录时,使用无效凭据登录时等。

    有一个example in my GitHub repository

    【讨论】:

    • 啊,感谢您提供的信息,尤其是示例链接,我还没有找到这些,我相信它们会很有价值。我认为也许该链接值得更突出的宣传:)
    • 如果您想为我们的自述文件贡献 ReSharper 特定的文档,我们非常感谢您提出拉取请求 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多