【发布时间】:2010-05-17 19:26:43
【问题描述】:
我们中的一群人(.NET 开发人员)正在谈论单元测试。不是任何一个框架(我们已经提到了 MSpec、NUint、MSTest、RhinoMocks、TypeMock 等)——我们只是在谈论一般性。
我们看到许多语法强制每个场景进行不同的单元测试,但我们没有看到一种途径来重新使用具有各种输入或场景的单元测试。此外,我们看不到在给定测试中进行多个断言的途径,而早期断言的失败会威胁到以后断言的测试(在同一个测试中)。
今天在 .NET 单元测试(基于状态或行为)中是否发生过类似的事情?
【问题讨论】:
-
“但我们没有看到一种途径来重新使用具有各种输入或场景的单元测试”TestCases 不是一个类吗?你不能对它们进行子类化吗?我不明白这个问题。你能举例说明你被阻止做什么吗?
-
回复:您的报价,我们想知道是否可以有一个输入列表,这些输入都将通过一个测试进行测试。我刚刚用谷歌搜索了 NUnit 的 RowTest 扩展(不知道 MSTest、MSpec 等是否有类似的东西)。这看起来只使用值类型。对于更复杂的类型,我很乐意看到类似的东西,但我只是不知道我期望它是什么样子(从语法/等角度来看)。
-
@lance:什么? TestCase 是一个类。您将其子类化以重用代码。为什么不简单地将 TestCase 子类化以重用代码?对 TestCase 进行子类化与“仅值类型”和“更复杂的类型”有什么关系?
-
查看 SumTest() (codeclimber.net.nz/archive/2008/01/18/…)。这是一项测试,根据您提供的输入数量执行多次。作为一名开发人员,我对使用这种方法(我刚刚发现)的体验并不感到兴奋,但它/is/“重新使用具有各种输入的单元测试”。
-
@lance:你为什么不创建你的TestCase的子类?
标签: .net unit-testing assert