问题标签 [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.
unit-testing - 帮助配置 MSpec
钻机:win7 64bit,vs2010,mvc v2,TestDriven.Net 3.0,Reshaper 5.0,MSpec 0.3
我最近开始了一个新项目,想使用 mspec。
(1) 将 Machine.Specifications.ReSharperRunner.5.0.dll 和 Machine.Specifications.dll 复制到 JetBrains\ReSharper\5.0\Bin\Plugins\Machine.Specifications (2) 将 Machine.Specifications.TDNetRunner.dll 复制到 TestDriven.NET 3\机器规格
当我尝试运行测试时,我收到此错误:System.IO.FileNotFoundException:无法加载文件或程序集'Machine.Specifications
我不知道这个错误来自哪里。
vs2010 menu -> ReSharper ->Plugins 显示了 MSpec 插件。vs2010 菜单 -> ReSharper -> 选项 -> 工具 -> 单元测试也显示了 MSpec 单元测试提供程序,但是当我像 MSTest 和 nUnit 一样单击它时,它没有显示任何详细信息。
我发现了这个: http: //marcinobel.com/index.php/mspec-bdd-installer/这不起作用。我也试过这个:http ://eduncan911.com/blog/registering-mspec-runners-for-testdriven-net-on-windows-x64.aspx这也没有用。现在我担心我搞砸了我的注册表。
有什么指导吗?
完整错误:
测试“F:Tests.OTBRadio.Tasks.AlbumTasksSpecs.when_the_album_tasks_are_asked_to_get_all.context”失败:无法加载文件或程序集“Machine.Specifications,版本=0.3.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。System.IO.FileNotFoundException:无法加载文件或程序集“Machine.Specifications,版本=0.3.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。文件名:TestDriven.TestRunner.AdaptorTestRunner 中 Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener, Assembly assembly, MemberInfo member) 中的“Machine.Specifications, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null”。
visual-studio-2010 - 在 Visual Studio 2010 和 .NET 4 中使用 MSpec 运行器
我是 MSpec 的忠实粉丝,所以我很自然地想立即使用 VS2010。我将 MSpec 运行器定义为 Visual Studio 中的外部工具,以便能够始终将其作为工具栏项可见。
无论如何,每当我尝试将 MSpec 运行程序 (mspec.exe) 与 .NET 4.0 解决方案一起使用时,我都会收到以下错误:
Could not load file or assembly 'file:///C:\Users\[SOMEUSER]\[SOME_FOLDERS]\bin\Debug\[PROJECT].Specs.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
我仍然可以使用 Resharper 5 跑步者来运行我的规格,所以这没什么大不了的,但我一直困扰着我:þ
你们知道问题可能是什么吗?除了将整个 Mspec 源代码重新编译为 .NET 4.0 解决方案之外,是否还有其他解决方案,而我真的非常不想这样做?
提前致谢。
塞尔吉
c# - 使用 MSpec 干燥非常相似的 ASP.NET MVC 控制器操作规范(BDD 指南)
对于两个非常相似的控制器操作,我有两个非常相似的规范:VoteUp(int id) 和 VoteDown(int id)。这些方法允许用户向上或向下投票;有点像 StackOverflow 问题的投票赞成/反对票功能。规格是:
投票:
投票:
所以我有两个问题:
我应该如何处理这两个规格?它甚至是可取的,还是我实际上应该为每个控制器操作制定一个规范?我知道我通常应该这样做,但这感觉就像在重复自己很多次。
有没有办法
It
在同一规范中实现第二个?请注意,这It should_not_let_the_user_vote_more_than_once;
需要我规范调用controller.VoteDown(1)
两次。我知道最简单的方法也是为它创建一个单独的规范,但它会再次复制和粘贴相同的代码......
我仍然掌握 BDD(和 MSpec)的窍门,而且很多时候不清楚我应该走哪条路,或者 BDD 的最佳实践或指导方针是什么。任何帮助,将不胜感激。
visual-studio-2010 - 运行 MSpec 时出错 - 如何进行故障排除?
我正在按照本指南安装和使用 MSpec,但在他第一次运行 MSpec 的步骤中,我收到以下错误:
无法加载文件或程序集 'file:///[...]\Nehemiah\Nehemiah.Specs\bin\Debug\Nehemiah.Specs.dll' 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。
我 - 据我所知 - 所做的一切都或多或少与他在这一步所做的一样,除了因为他使用的是 VS2008 而我使用的是 VS2010 而出现的差异,而且到目前为止一切正常。Nehemijah.Specs 项目(和整个解决方案)在 Visual Studio 和我的构建服务器上都没有问题地构建,我在事件查看器中找不到任何有用的东西(尽管我可能没有在这里寻找正确的地方.. .)
该怎么办?
asp.net-mvc - 使用 MSpec 测试 ActionFilterAttributes
我目前正在尝试掌握 MSpec,主要是为了学习 (T/B)DD 的新方法,以便能够就使用哪种技术做出有根据的决定。以前,我主要(只读)使用内置 MSTest 框架和 Moq,所以 BDD 对我来说是相当新的。
我正在编写一个 ASP.NET MVC 应用程序,并且我想实现PRG。上次我这样做时,我使用操作过滤器通过 导出和导入ModelState
,TempData
这样我就可以返回 aRedirectResult
并且当用户获得视图时验证错误仍然存在。我通过验证两件事来测试该场景:
a)我编写的 ExportModelStateAttribute 已应用(在我的控制器的测试中)
b)该属性有效(在动作过滤器属性的测试中)
但是,在 BDD 中,我明白我应该更加关注行为,而更少关注实现。这意味着我可能应该在操作完成执行时验证模型状态是否在 tempdata 中 - 不一定是通过属性完成的。
更复杂的是,在测试中直接调用动作时属性不会运行,所以我不能只调用动作并查看工作是否完成。
我应该如何在 MSpec 中规范/测试这个?
c# - 我可以“继承”代表吗?寻找将 Moq 和 MSpec 结合起来而不会发生冲突的方法
我已经开始将MSpec用于 BDD,并且很久以前我就使用 Moq 作为我的模拟框架。但是,它们都定义了It
,这意味着我不能在同一个代码文件中拥有using Moq
和using Machine.Specifications
,而不必每次使用It
. 任何使用过 MSpec 的人都知道这不是一个真正的选择。
我在谷歌上搜索了这个问题的解决方案,这个博主提到已经为自己分叉了 MSpec,并实现了对Given
, When
, . 的并行支持Then
。
我想这样做,但我不知道如何声明例如Given
,而不必通过整个框架寻找对 的引用Establish
,并更改那里的代码以匹配我想要的任何一个都可以。
作为参考,Establish
和Because
以It
下列方式声明:
我需要的是以某种方式声明Given
,以便代码在任何地方寻找一个Establish
,Given
也可以。
c# - 为什么这个测试会失败?
我正在尝试测试/指定以下操作方法
具有以下 MSpec 规范:
wherewith_a_change_password_input_model
是一个基类,它实例化输入模型,为 IMembershipService 设置一个模拟等。第一个测试失败ThenIt
(这只是我用来避免与 Moq 冲突的别名......),错误描述如下:
Machine.Specifications.SpecificationException:应为 System.RuntimeType 类型,但为 [null]
但我正在返回一些东西——事实上,一个RedirectToRouteResult
——方法可以终止的每一种方式!为什么 MSpec 相信结果是null
?
c# - 模拟和存根 Ajax 请求
昨天我重构了以下方法以返回完整视图或部分视图。
但是现在我的测试已经失败了,他们在if
声明上失败了。我做了一个谷歌,发现你可以用类似的东西模拟/存根 HTTP 请求,
我在测试中实现了上述内容,但仍然失败。
测试
错误
如何Request.IsAjaxRequest()
在我的控制器中获取请求以作为 ajax 请求传递???
致富
编辑- 找到这篇文章,我的 ajax 测试现在通过了,但我的非 ajax 仍然失败。
.net - Resharper 5.0 和 Machine.Specification(个别测试显示为灰色)
我在使用 Resharper 5.0 运行机器规格测试时遇到问题。单个测试在 Reshaper Test Runner 中显示为灰色,我也无法使用 Resharper 调试它们。尽管没有任何测试正在运行,但我仍然看到绿色条,好像所有测试都已成功通过。关于如何让这个工作的任何想法?