我希望在工作中引入单元测试框架。我们正在使用VisualStudio2005(尽管我们可能会在接下来的六个月内迁移到2008)并且主要使用C#进行工作。如果该框架具有某种IDE集成,那将是最好的,但我对没有集成但设置起来仍然相对简单的框架持开放态度。我会以某种方式遇到阻力,所以如果我能确保我推的东西不会让脖子疼痛,那将有助于我的案子。到目前为止,根据我所做的研究,显而易见的选择是NUnit,但我想在向我的团队推荐它之前了解实际使用过它的人的印象。有没有人用过NUnit?如果是这样,是否有任何我应该注意的陷阱或限制?还有其他好的选择吗?如果是这样,如果您同时使用过这两个NUnit,我将非
我想测试一个使用剪贴板(WindowsForms)的应用程序,我的单元测试中也需要剪贴板。为了使用它,它应该在STA模式下运行,但是由于NUnitTestFixture没有main方法,我不知道在哪里/如何注释它。 最佳答案 如果你使用的是nunit2.5+,你可以在类中使用新的RequiresSTAAttribute[TestFixture,RequiresSTA]或汇编级。[assembly:RequiresSTA]不需要配置文件。查看:http://www.nunit.org/index.php?p=requiresSTA&r
我想测试一个使用剪贴板(WindowsForms)的应用程序,我的单元测试中也需要剪贴板。为了使用它,它应该在STA模式下运行,但是由于NUnitTestFixture没有main方法,我不知道在哪里/如何注释它。 最佳答案 如果你使用的是nunit2.5+,你可以在类中使用新的RequiresSTAAttribute[TestFixture,RequiresSTA]或汇编级。[assembly:RequiresSTA]不需要配置文件。查看:http://www.nunit.org/index.php?p=requiresSTA&r
我想知道是否有人找到了一个很好的解决方案:在我们的单元测试中;我们通常使用Assert.AreEqual()来验证我们的结果。一切都很好;直到我们开始尝试在DateTime属性上使用它。虽然时间非常相似,但有时会相差毫秒,导致测试失败。在我们的申请中;只要它们精确到秒;这对我们来说已经足够了。在这种情况下,有人找到以某种方式实现公差的好方法吗?通常我们的解决方法是将其拆分为2个单独的语句;一个检查.ToShortDateString(),另一个检查.ToShortTimeString(),但在我看来这看起来很草率。 最佳答案 使用A
我想知道是否有人找到了一个很好的解决方案:在我们的单元测试中;我们通常使用Assert.AreEqual()来验证我们的结果。一切都很好;直到我们开始尝试在DateTime属性上使用它。虽然时间非常相似,但有时会相差毫秒,导致测试失败。在我们的申请中;只要它们精确到秒;这对我们来说已经足够了。在这种情况下,有人找到以某种方式实现公差的好方法吗?通常我们的解决方法是将其拆分为2个单独的语句;一个检查.ToShortDateString(),另一个检查.ToShortTimeString(),但在我看来这看起来很草率。 最佳答案 使用A
我需要测试以下方法:CreateOutput(IWriterwriter){writer.Write(type);writer.Write(id);writer.Write(sender);//manymoreWrite()s...}我已经创建了一个Moq'dIWriter,我想确保Write()方法以正确的顺序被调用。我有以下测试代码:varmockWriter=newMock(MockBehavior.Strict);varsequence=newMockSequence();mockWriter.InSequence(sequence).Setup(x=>x.Write(expe
我需要测试以下方法:CreateOutput(IWriterwriter){writer.Write(type);writer.Write(id);writer.Write(sender);//manymoreWrite()s...}我已经创建了一个Moq'dIWriter,我想确保Write()方法以正确的顺序被调用。我有以下测试代码:varmockWriter=newMock(MockBehavior.Strict);varsequence=newMockSequence();mockWriter.InSequence(sequence).Setup(x=>x.Write(expe
我想创建NUnit测试以确保我的函数不会抛出异常。有没有一些具体的方法可以做到,或者我应该写[Test]publicvoidnoExceptionTest(){testedFunction();}如果没有抛出异常,它会成功吗? 最佳答案 Assert.DoesNotThrow(()=>{/*customcodeblockhere*/});或者只是方法Assert.DoesNotThrow(()=>CallMymethod());有关详细信息,请参阅NUnitExceptionAsserts
我想创建NUnit测试以确保我的函数不会抛出异常。有没有一些具体的方法可以做到,或者我应该写[Test]publicvoidnoExceptionTest(){testedFunction();}如果没有抛出异常,它会成功吗? 最佳答案 Assert.DoesNotThrow(()=>{/*customcodeblockhere*/});或者只是方法Assert.DoesNotThrow(()=>CallMymethod());有关详细信息,请参阅NUnitExceptionAsserts
我有一个项目将模板存储在DLL和EXE旁边的\Templates文件夹中。我想在运行时确定这个文件路径,但使用的技术既可以在单元测试中使用,也可以在生产中使用(而且我不想在NUnit中禁用影子复制!)Assembly.Location不好,因为它在NUnit下运行时返回影子复制程序集的路径。Environment.CommandLine的用途也很有限,因为在NUnit等中它返回NUnit的路径,而不是我的项目。Assembly.CodeBase看起来很有前途,但它是一个UNC路径:file:///D:/projects/MyApp/MyApp/bin/debug/MyApp.exe现在