草庐IT

unit-testing

全部标签

c# - 当我运行测试时,如何让单元测试复制我的 DLL 和其他文件?

我正在开发一个应用程序,我已经为它创建了许多单元测试。带有测试类的项目依赖于3个第三方DLL。当我转到测试项目的bin\Debug文件夹时,Dll就在那里。但是当我运行测试时,DLL没有被复制到TestResult\\Out文件夹中。还有一个我想复制的来自另一个项目的log4net.config文件。这个没有出现在测试项目的bin\Debug文件夹中,所以这是我必须解决的另一个问题。如何在运行单元测试时复制这些文件?托尼 最佳答案 您可以使用DeploymentItemAttribute将文件复制到bin(或其他)目录。[TestM

c# - 以编程方式断开网络连接

有没有办法在.NET4.0中以编程方式暂时断开网络连接?我知道我可以通过这样做获得当前的网络连接状态...System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()但出于测试目的,我想测试我的应用程序在失去网络连接时的行为(无需实际拔下网络电缆)。谢谢,克里斯。 最佳答案 您可以使用WMI来完成。这是我们用于禁用物理适配器以测试这些类型的场景的一个。usingSystem.Management;usingSystem.Linq;namespaceDis

c# - 使用 Moq 来 stub 接口(interface)方法

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtomockamethodthatreturnsanintwithMOQ这是我的界面:publicinterfaceICalenderService{DateTimeAdjust(DateTimedateToAdjust,BusinessDayConventionconvention,ListholidayCities);}我做了一些研究,看起来你可以很容易地模拟这个,但我想用Moq把它stub,这样我就可以把stub传递给我的其他类构造函数,让stub返回任何DateTime我想要它的Adjust方法

c# - 如何在 NUnit 中编写集成测试?

我们是两个正在写学士论文的学生,我们开发了一个Windows应用程序,它应该能够在各种沟通过程中帮助餐厅。从根本上说,它应该能够从客人发送给它的那一刻起就显示有关订单的信息。我们在开发过程中省略了测试,但现在决定编写单元测试。尽管如此,我们发现我们现在可以写入系统的最合适的测试是集成测试,因为我们类中的所有方法都通过LINQtoSQL绑定(bind)到SQL存储过程。我们知道使用stub来伪造对数据库的依赖性,但是当我们的数据库已经与所有功能一起实现时,我们认为将几种方法作为集成测试一起测试会给我们带来更多值(value)。如以下代码所示,我们已尝试遵循单元测试的指南,但这是编写集成测

c# - 如何最小化 Entity Framework SaveChangesAsync?

MockdbContext;[TestFixtureSetUp]publicvoidSetupDbContext(){dbContext=newMock();dbContext.Setup(c=>c.SaveChanges()).Verifiable();dbContext.Setup(c=>c.SaveChangesAsync()).Verifiable();dbContext.Setup(c=>c.Customers.Add(It.IsAny())).Returns(It.IsAny()).Verifiable();}[Test]publicasyncTaskAddCustomer

C# - 单元测试,模拟?

应该使用目标类的内置单元测试生成器(VS)还是我应该自己学习如何编写单元测试?这个“模拟”是什么东西?我一遍又一遍地听到它,但没有人关心给出一个好的解释。提前致谢。 最佳答案 您需要学习自己编写单元测试。从正确理解许多人在以下方面犯错误的术语开始,从右脚开始:单元测试:测试单个代码单元,非常小的原子测试。集成测试:测试集成在一起的多个代码单元,通过不同的层并确保它们正确使用彼此。这些应该在单元测试验证了各个单元独立工作之后完成。许多人错误地将这些称为单元测试。内置验证测试:通过部署和运行将以用户方式与其交互的测试来测试内置产品。也经

c# - 如何在单元测试类的 [ClassInitialize()] 中写入输出?

我正在为我的C#.NET应用程序的持久层编写一些单元测试。在测试类的测试执行之前和之后,我想做一些清理以清除可能插入的虚拟值,因此,这种清理发生在标有属性[ClassInitialize()]和[ClassCleanup()]。(我知道更好的方法是使用内存数据库,但就我们依赖大量存储过程而言,这并不是真正可行的....)我想输出一些关于清理结果的信息,但我找不到在VISUALStudio2010测试结果中获取输出的方法。这就是我目前所做的:///...lotsofstuffbefore...//globalforthetestrunprivatestaticTestContextcon

c# - 你能解释一下 StrictMock 和 Partialmock 之间的区别吗?

因为我使用的是RhinoMocks3.6版并且我没有使用Record-Replay并且我没有调用Verify方法来对模拟进行断言;你能解释一下非常简单的区别吗?MockRepository.GenerateMock()MockRepository.GeneratePartialMock()MockRepository.GenerateStrictMock()注意:我一直使用.GenerateMock来创建我的模拟,并且我已经通过提供参数期望来断言方法调用。 最佳答案 区别是explainedinthisarticle如果您在Stri

c# - 如何在知道有误差的情况下比较小数

我有两种不同的方法来计算一个值。两种方法运行后,我得到以下信息:decimala=145.2344;decimalb=145.2345;我有一个单元测试:Assert.AreEqual(a,b);我希望能够解释+/-.0001的差异。如何添加此规则? 最佳答案 在NUnit'sconstraintmodel,你可以这样做:Assert.That(Math.Abs(a-b),Is.LessThan(0.0001M));更好的是,让它成为一个函数:voidAssertDiff(decimala,decimalb,decimaldiff=

c# - 单元测试项目c#上的相对路径

我有一个包含控制台应用程序和单元测试的解决方案。vartarget=newValidator();vartargetFile=@"C:\Folder\SubFolder\AnotherSubFolder\Development\DEV\src\UnitTest\TargetFolder\file.xml";boolactual=target.Validate(targetFile);Assert.AreEqual(true,actual);Validator位于控制台应用程序项目中,而我的file.xml位于单元测试项目中的文件夹中。这个单元测试通过了,但是我想确保当我将它checki