问题标签 [mspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mspec - MSpec 是否具有“全局”清理功能?
我正在使用 MSpec 来驱动我的浏览器测试,但我一直忘记关闭浏览器。与其把这种清理工作放在每一个上下文中,它可以在全球范围内应用吗?
moq - 如何使用 moq 和 mspec 断言对这个模拟依赖项调用了一个方法?
我正在测试模型存储库以查看它是否调用消息总线。我不确定这是否是一个好的测试,但这是我的想法:我通常会将 bus.send 放入控制器(这是一个 MVC Web 应用程序),但因为我不想专门测试我的控制器逻辑上,我把它移到了存储库中。就我而言,控制器很简单。Repository 使用总线和模型数据库来构建视图模型。
无论如何,这个问题的重点是我正在运行的最小起订量测试。我模拟了总线并想验证它是从存储库中调用的。
测试看起来像这样:
存储库的要点是这样的:
IMessageBusAgent 声明为:
测试结果如下所示:
» 应该将创建诊所命令发送到总线 (FAIL)
测试“应将创建诊所命令发送到总线”失败:Moq.MockException:预期在模拟上调用 1 次,但为 0 次:b => b.Send(when_creating_new_clinic.cmd)
0 次通过,1 次失败,0 次跳过,耗时 3.58 秒(Machine.Specifications 0.4.24-f7fb6b5)。
Send() 命令在 IDomainCommandSender 中声明,那么我需要如何设置测试以便验证正确的调用?
谢谢
c# - 如何使用 MSpec 为接口的所有实现编写通用测试?
我有IAudioProcessor
一个单一方法的接口IEnumerable<Sample> Process(IEnumerable<Sample> samples)
。虽然这不是接口本身的要求,但我想确保我的所有实现都遵循一些通用规则,例如:
- 使用延迟执行
- 不要更改输入样本
为这些创建测试并不难,但我必须为每个实现复制和粘贴这些测试。我想避免这种情况。
我想做这样的事情(注意属性GenericTest
和类型参数):
这样的事情可能吗?
unit-testing - 为什么 MSpec 不与 ReSharper 6 集成?
我无法让 MSpec 与 ReSharper 6 一起使用。我刚刚从 NuGet 包中安装了 MSpec:
接下来,我退出 Visual Studio,打开提升的命令提示符并从 packages\tools 文件夹运行安装脚本:
最后,重新加载 Visual Studio。没有骰子!文本编辑器中没有图标,ReSharper 选项中也没有显示任何插件。
我究竟做错了什么?MSpec 网站说这应该可以工作:(
c# - 为什么 ReSharper 测试运行器中会出现这个被注释掉的 MSpec Behavior?
MSpec 大师,为什么这不起作用?
当我在 ReSharper 中运行它时,规范显示但不执行(我也无法调试它):
奇怪的是,注释掉的规范显示在 ReSharper 输出中。诶?显然我做的不对,请赐教!
unit-testing - 当所有测试都失败时,MSpec 和 ReSharper 测试运行程序将规范显示为 PASSED
这是一个错误,还是预期的行为?使用 MSpec 和 ReSharper 时,在顶部窗格中,我的规范显然失败了,但底部窗格将其显示为通过。
tdd - 我应该在单元测试级别使用specflow吗?
可能重复:
用于单元测试的 SpecFlow/BDD?
在过去的几年里,我一直在使用 NUnit/Moq 在 TDD 中工作,在过去的几个月里,我一直在使用 mSpec 来掌握 BDD。
到目前为止一切都很好,但我们现在希望更多地进入基于验收标准的测试,其中涉及业务分析师,并且我们在开发过程中获得了外部。
所以现在我们已经预定义了 Gherkin 语法文件,并且使用 specflow 感觉是正确的工作方式。
但是,在单元测试级别,具有预定义的 Gherkin 文件会违背我对 TDD 的理解。换句话说,你在设计过程中会随着行为的发展而长期发展你的设计。
由于我们正在使用外部方法,现在在单元测试级别,我们现在是否拥有现在可以用来驱动我的单元测试的规范/行为(感觉就像我一直在做 TDD 的方式)?
早些时候,这些文件对于验收测试很重要,但作为开发人员,我将独自工作,因此除非我使用 SpecFlow,否则它们不是必需的。
另外,当我们使用 mspec 时,在单元测试级别维护 GWT 文件会有什么好处?开发人员应该能够直接跳入代码并阅读测试,或者只是运行测试运行程序以查看它在做什么。
TIA京东
monodevelop - 您可以将 MSpec 与 MonoDevelop 测试运行器集成吗?
您可以将 MSpec 与 MonoDevelop 测试运行器集成吗?它在 Sharp-Develop 中工作。谷歌说“没什么”,所以我猜在当前版本(2.8.2)中这是不可能的。
c# - 您如何命名 xSpecification/BDD 测试类以便它们传达意图?特别是在解决方案资源管理器中
我最近强烈采用了 BDD 设计以及使用 MSpec 来实现 xSpecification 测试。这导致一些相当疯狂的类名变得难以区分解决方案资源管理器中的意图。举个例子:
我最初的一些想法可能是使用解决方案文件夹并执行类似的操作
Given_I_am_logged_in \When_I_view_my_some_company_super_things.cs
这将使我有可能进一步深入
Given_I_am_logged_in \ And_things_are_good \When_I_view_my_some_company_super_things.cs Given_I_am_logged_in \ And_things_are_bad \When_I_view_my_some_company_super_things.cs
有没有人成功地做类似的事情,或者你在命名 xSpecification 测试时发现了什么?