问题标签 [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.
visual-studio - 如何抑制或修复未使用 MSpec Behaves_like 字段的 Visual Studio 警告?
我正在使用Behaviors
和Behaves_like
字段编写惯用的 MSpec 规范
Visual Studio 显示生成警告
我已经熟悉 MSpec 的 ReSharper 代码注释,并且我有 MSpec 主题和字段的命名规则。我不知道如何控制未使用字段的此警告。我想避免在项目级别抑制警告,因为它在常规情况下实际上很有用。
bdd - 这个 MSpec 测试可以改进吗?
作为 BDD 和 MSpec 初学者,我仍然不太确定与 BDD 相关的最佳实践和良好习惯,尤其是与 MSpec 相关的最佳实践。
下面的例子可以改进吗?它是否遵循最佳实践和良好习惯?
- 我的规范类和行为的命名是否正常?
- 我应该在这种情况下使用行为还是应该为规范类使用公共基类?
- 没有
Establish
这里可以吗? - 我应该使用静态工厂方法(
TestData
方法)来获取测试数据还是应该在规范本身中创建数据? - 而不是测试我可以使用的行为中的每个属性,
result.Equals()
但是我会测试两件事,这不好,对吧?
请随时将示例重构为您认为更好的示例。
c# - 如何使用 MSpec 有效地测试固定长度的平面文件解析器?
我有这个方法签名:List<ITMData> Parse(string[] lines)
ITMData
拥有 35 个属性。
您将如何有效地测试这样的解析器?
问题:
- 我应该加载整个文件(我可以使用 System.IO)吗?
- 我应该将文件中的一行放入字符串常量中吗?
- 我应该测试一条或多条线
- 我应该测试 ITMData 的每个属性还是应该测试整个对象?
- 我的测试命名如何?
编辑
我将方法签名更改为 ITMData Parse(string line)
.
测试代码:
编辑 2
我仍然不确定是否应该只测试每个类的一个属性。在我看来,这让我可以为规范提供更多信息,即当我解析从索引 59 到索引 79 的单行时,我得到了 fldName。如果我测试一个类中的所有属性,我会丢失此信息。我是否过度指定了我的测试?
我的测试现在看起来像这样:
unit-testing - 如何使用私有构造函数创建类型的实例以进行单元测试?
我需要对响应 SerialDataReceived 事件的事件处理程序进行单元测试System.IO.Ports.SerialPort
。此事件处理程序具有签名
因此,当我的单元测试调用该方法时,它需要一个SerialDataReceivedEventArgs
实例。但是该对象有一个私有构造函数。那么如何让 aSerialDataReceivedEventArgs
传递给该方法呢?
我确定我必须在这里遗漏一个明显的技术,我已经度过了漫长的一天......请给点建议吗?
tdd - MSpec,我应该在我的 [Subject()] 属性中添加什么?
我已经使用 MSpec 有一段时间了,我真的很喜欢它。我发现要让 ReSharper 识别我的规范,我需要使用SubjectAttribute
.
不过我想知道,放入[Subject()]
属性的最好的东西是什么?
如果我在做 BDD,那么我不知道被测类型,所以[Subject(typeof(thingy))]
似乎为时过早。我想在编写代码后可以稍后添加。
这样就留下了文本版本,[Subject("some text")]
. 但是放在那里最好的东西是什么?
无论我做什么,它似乎都不会影响我在 ReSharper 中获得的输出。我想在某种程度上这取决于个人喜好,但我想知道这里是否有任何约定?
c# - 如何断言一个方法只被调用一次?
编辑解决方案:
c# - 如何使用 MSpec 测试由 ASP.NET MVC 操作设置的 HTTP 状态代码
我有以下控制器:
我创建了一个 MSpec 规范:
但由于我如何实例化控制器,HttpContext 为空。测试操作设置的状态代码的最佳方法是PageNotFound
什么?
编辑:在下面发布了答案
unit-testing - MSpec 是否在运行测试后生成 TRX 结果文件?
MSpec 是否在运行测试后生成TRX 结果文件?如果没有,可以吗?测试正在使用 ReSharper 运行。
unit-testing - 是否可以使用 MSpec 来测试 .net 微框架项目?
我希望能够使用 MSpec 或其他 BDD/TDD 框架来测试针对 .net 微框架的代码。不幸的是,从非 MF 程序集引用 MF(微框架)程序集是不可能的。很遗憾,因为它只是 C# 代码,而单元测试在这种情况下非常有用。有没有人想出一种方法来为.net 微框架项目进行单元测试(最好使用 MSpec)?
tdd - 可以改进这些行测试风格的单元测试以遵循良好的 TDD 设计实践吗?
是否可以改进以下单元测试,以遵循任何 .NET TDD/BDD 框架中的良好 TDD 设计实践(命名、使用行测试、设计类)?
此外,在任何框架中是否有更好的方法来进行行测试,我可以对每一行有一个单独的期望,就像我在这个(NUnit)示例中所做的那样?
此处测试的系统是Constraint
可以具有多个有效整数范围的类。该测试测试NarrowDown
可以基于另一个约束使有效范围更小的方法。