MAIBILAI

unit-testing

全部标签

c# - 使用IoC时单元测试的策略应该是什么?

在阅读了所有有关依赖注入(inject)和IoC的内容之后,我决定尝试在我们的应用程序中使用WindsorContainer(这是一个50KLOC多层Web应用程序,所以我希望这不是一个过大的杀伤力)。我使用了一个简单的静态类来包装容器,并在启动应用程序时对其进行了初始化,目前效果很好。我的问题是关于单元测试的。我知道DI将使我的生活更轻松,因为它使我有可能将类协作者的stub/模拟实现注入(inject)到被测类中。我已经使用这种技术编写了几个测试,这对我来说似乎很有意义。我不确定的是我是否应该在单元测试中也使用IoC(在本例中为温莎城堡)(可能以某种方式将其配置为为我的特殊情况返回

c# - 如何在单元测试中最小化 NetworkStream?

我使用Moq和NUnit作为单元测试框架。我写了一个方法,将NetworkStream对象作为参数:publicstaticvoidReadDataIntoBuffer(NetworkStreamnetworkStream,QueuedataBuffer){if((networkStream!=null)&&(dataBuffer!=null)){while(networkStream.DataAvailable){byte[]tempBuffer=newbyte[512];//readthedatafromthenetworkstreamintothetemporar

c# - Visual Studio 2012/Resharper 单元测试不运行

我曾经能够在VS2012中运行单元测试。现在,突然之间,无论我尝试“运行”还是“调试”任何单元测试,“单元测试session”窗口都会将测试置于“待定”状态状态,但从未实际执行它。我试过重新启动我的开发环境,甚至重新启动计算机。没有变化。那么说“使单元测试卡住在‘待定’”的secret设置在哪里? 最佳答案 我在评论中的回答是正确的这是一个resharper问题-seehere.检查您的Resharper和/或VS2012版本是否受到影响 关于c#-VisualStudio2012/Re

c# - MSTest.TestAdapter 与 MSTest.TestFramework 之间有什么区别,我什么时候需要哪一个?

MSTest.TestAdapter与MSTest.TestFramework之间的实际区别是什么?我什么时候需要哪个?在NuGet描述中,您可以阅读:MSTest.TestAdapterTheadaptertodiscoverandexecuteMSTestFrameworkbasedtests.MSTest.TestFrameworkThisisMSTestV2,theevolutionofMicrosoft'sTestFramework.+TodiscoverandexecutetestsinstallMSTest.TestAdapter.嗯,不是很有帮助,我总是安装这两

c# - 测试/验证弱引用

我想验证设置WeakReference的代码不会意外持有对引用对象的强引用。(这里的anexample说明了如何很容易不小心这样做。)这看起来是检查无意强引用的最佳方式吗?TestObjecttestObj=newTestObject();WeakReferencewr=newWeakReference(testObj);//VerifythattheWeakReferenceactuallypointstotheintendedobjectinstance.Assert.Equals(wr.Target,testObject);//ForcedisposaloftestObj;tes

c# - 测试 ASP.NET MVC View 模型

我正在使用Nunit和Moq来测试我的asp.netmvc解决方案。这是测试传递给View的模型是否是正确对象/集合的好方法吗?[Test]publicvoidStart_Page_Should_Display_Posts(){varposts=newList<Post>{newPost{Id=1},newPost{Id=2}};varmock=newMock<IRepository>();mock.Setup(x=>x.FindAll<Post>()).Returns(posts.AsQueryable());varcontroller=ne

c# - 在 Visual Studio 中测试单独成功,在一组中失败

当我在VisualStudio中单独运行我的测试时,它们都毫无问题地通过了。但是,当我一次运行所有这些时,有些通过了,有些失败了。我尝试在每个测试方法之间暂停1秒,但没有成功。有什么想法吗?预先感谢您的帮助... 最佳答案 您可能有一些共享数据。检查正在使用的类中的静态成员变量,这意味着一个测试设置了一个导致后续测试失败的值。您还可以调试单元测试。根据您使用的框架,您应该能够将框架工具作为调试启动应用程序运行,并将已编译程序集的路径作为参数传递。 关于c#-在VisualStudio中测

c# - 测试过程。开始?

我正在创建一个管理外部实用程序的多个实例的应用程序,为每个实例提供数据并获取结果。但是我在编写单元测试时遇到了问题。如何测试目标方法在被调用时是否真的启动了一个进程(通过属性设置)?我试过:让类执行一个外部进程,然后使用GetProcessesByName()检查它是否已经启动。使用输出重定向,例如使用大于号将某些内容回显到文件并测试其存在我觉得再创建一个.exe来测试它太过分了。代码:publicvoidStart(){if(!_isRunning){varstartInfo=newProcessStartInfo(){CreateNoWindow=true,UseShellExec

c# - NUnit测试调试

我正在开发一个几何库。有200多个单元测试。有一个特别顽固的测试会在我选择“全部运行”时失败,但当我单独运行该测试或对其使用调试器时测试通过。我相信这个问题是在我从visualstudio'13转移到'15版本时出现的。现在关于几何库的一些注意事项:对象是不可变的。测试之间没有共享对象。那么我的问题是:造成这种奇怪行为的可能原因是什么?编辑:[Test()]publicvoidPlane_IntersectionWithPlane_IdenticalPlane(){PlanetestPlane=newPlane(newDirection(Point.MakePointWithInche

c# - 使用 Visual Studio 在 C# 中进行单元测试入门

我知道VisualStudio提供了一些单元测试的好东西。我如何使用它们,你如何使用它们?关于单元测试我应该知道些什么(假设我什么都不知道)。Thisquestion是相似的,但它没有说明VisualStudio可以做什么,因此请不要将其标记为重复。作为CommunityWiki发布是因为我不想成为代表妓女。 最佳答案 很明显,最显着的区别是MSTest支持内置于VisualStudio中,并直接提供单元测试、代码覆盖率和模拟支持。为了在外部(第三方)单元测试框架中做相同类型的事情,通常需要多个框架(一个单元测试框架和一个模拟框架)