我有一个位于网络共享上的项目。测试运行器尝试运行测试但失败并显示一条错误消息。单元测试运行程序无法加载程序集:JetBrains.ReSahrper.TaskRunnerFramework.TaskException:无法加载文件或组合'File://\myshare\VisualStudio2010\Projects\MyPorject\TestMyProject\bin\Release\TestMyProject.dll'或其依赖项之一。测试使用MSTest运行。我在VisualStudio2010Pro的devenv.exe.config中启用了loadFromRemoteSou
我有一个包含对统计对象的引用的单例。当我在使用该单例的程序上运行几个单元测试时-测试之间保持的值。我虽然在执行Program.Main()时它会在单元测试之间重新开始,但不知何故它会记住上次测试的结果。我如何编写相互隔离的单元测试(我不想要clean()函数-我希望它从新的“一切”开始), 最佳答案 简短版本:不要把你的单例写成单例。将它们编写为普通类,并通过控制反转容器调用它们,您已将类配置为单例。这样,您就可以很好地对类进行单元测试,如果您今天或明天决定单例不是该类的正确生活方式,只需修改IoC容器的配置即可。
我安装了最新的NUnit(3.2.0),并且所有测试都并行运行。它可能看起来像是理想的行为,但我并没有要求它,实际上它破坏了我的一些测试。我在[OneTimeSetUp]中进行了一些依赖于线程的初始化,似乎我无法做任何事情来强制NUnit按顺序运行我的测试。我读过documentation它指出默认情况下测试不是并行运行的,但实际上它们是!此外,我尝试添加以下属性:[assembly:Parallelizable(ParallelScope.None)]—没有成功。有人知道如何改变这种行为吗?附言我使用ReSharper运行它,但也尝试使用MSVS插件。UPD:我正在使用MVVMLig
我是MVC、单元测试、模拟和TDD的新手。我正在尝试尽可能地遵循最佳实践。我已经为Controller编写了单元测试,但我无法测试是否返回了正确的View。如果我使用ViewResult.ViewName,如果我没有在Controller中指定View名称,测试总是会失败。如果我确实在Controller中指定了ViewName,那么即使View不存在,测试也会通过。我也试过测试Response.Status代码,但是它总是返回200(代码取自DarinDimitrov对MVC3unittestingresponsecode的回答)。我的目标是在创建新View时进行经典的红色、绿色重构
我正在尝试使用MOQ对以下ViewModel的LoginExecute方法进行单元测试publicclassLoginViewModel:ViewModelBase,ILoginViewModel{INavigationServicenavigationService;IDialogServicedialogService;IAdminServiceadminService;publicRelayCommandLoginCommand{get;set;}privatestring_productID;publicstringProductID{get{return_productID;
我目前运行的测试如下所示://InBlah.cspublicclassClassUnderTest{publicboolMethodUnderTest(){//Doabunchofstuff...returnHelperMethod();}protectedvirtualboolHelperMethod(){boolsuccess=false;//ProprietaryHardwareAccess.//DatabaseCalls.//FileSystemModifications.returnsuccess;}}//InTestBlah.cspublicclassTestStub:Cl
我有这个类我想进行单元测试:publicclassSomeClass{publicvoidFoo(){Bar();}privatevoidBar(){Task.Factory.StartNew(()=>{//Dosomethingthattakessometime(e.g.anHTTPrequest)});}}这就是我的单元测试的样子:[TestMethod]publicvoidTestFoo(){//Arrangevarobj=newSomeClass();//Actobj.Foo();obj.Foo();obj.Foo();//Assert/*Ineedsomethingtowai
我们发现自己在许多测试用例中编写重复的夹具/模拟设置-就像这个案例:varfixture=newFixture().Customize(newAutoMoqCustomization());varencodingMock=fixture.Freeze>();varhttpClientMock=fixture.Freeze>();varhttpResponseMock=fixture.Freeze>();varhttpHeaderMock=fixture.Freeze>();varetag=fixture.CreateAnonymous();byte[]data=fixture.Crea
我有以下ControllerActionpublicvoidPost(Dtomodel){using(varmessage=newMailMessage()){varlink=Url.Link("ConfirmAccount",new{model.Id});message.To.Add(model.ToAddress);message.IsBodyHtml=true;message.Body=string.Format(@"Clickheretocompleteyourregistration.Youmayalsocopyandpastethislinkintoyourbrowser.
我有一个简单的文档管理器,它被注入(inject)到我在asp.netc#MVC项目中的Controller中。该项目是数据库优先的,Document表由documentId索引,这是一个自动递增的整数。我一直在尝试编写一个测试来测试CreateNewDocument的以下实现,它在成功添加文档后查找它并返回新文档ID。问题是我找不到模拟MyEntityFrameWorkEntities的方法,我可以向其中添加文档,然后使用linq搜索该文档。我认为它不起作用,因为模拟的_context.Document.Add并没有真正做任何事情。我的问题是:我能否以不同的方式设置我的模拟,以便我可