我是单元测试MVVM的新手,在我的项目中使用PRISM。我正在对我们当前的项目实现单元测试,但没有幸运地在线找到可以告诉我如何测试调用异步方法的DelegateCommand的资源。这是我的帖子的后续问题-HowtoUnitTestaViewModelwithasyncmethod.关于如何在MVVM中对异步方法进行单元测试,并回答说公共(public)方法可以使用异步TestMethod进行测试。仅当我要测试的方法是公共(public)方法时,此方案才有效。问题是我想测试我的DelegateCommand,因为这是我想在其他类上公开的唯一公开细节,其他所有内容都是私有(private
我有一个编译为64位的ADO.NET驱动程序。因此,我需要在64位模式下运行mstests。这可能吗?(开发机器是64位)。 最佳答案 VisualStudio为此内置了一个选项。有点难找(如果你不知道去哪里找的话)。在SolutionExplorer中双击local.testsettings文件,然后在列表框中选择Hosts。然后如图所示进行更改。您必须在64位操作系统中进行测试,并且您的应用程序应该使用AnyCPU进行编译。 关于c#-以64位运行测试,我们在StackOverflo
我正在使用C#4.0,我需要对服务进行单元测试。服务内部的函数返回一个类似于我称为预期的变量的路径,这是我期望返回的路径。但是当我运行这个测试时,我得到了HttpContext.Current为NULL的错误。我该怎么做才能解决这个问题,以便可以运行测试?[TestMethod]publicvoidGetPathTest(){varexpected=System.IO.Path.GetFullPath(HttpContext.Current.Server.MapPath("~/Certificates/"));varpath=_mockService.Setup(o=>o.GetPat
什么是最佳实践?调用一个函数然后返回,如果你测试了一些东西,或者测试了一些东西然后调用?我更喜欢函数内部的测试,因为它可以更轻松地查看调用了哪些函数。例如:protectedvoidApplication_BeginRequest(objectsender,EventArgse){this.FixURLCosmetics();}和privatevoidFixURLCosmetics(){HttpContextcontext=HttpContext.Current;if(!context.Request.HttpMethod.ToString().Equals("GET",StringC
我正在使用TFS2012从VisualStudio2015构建和部署解决方案,没有任何问题。我决定将我的单元测试作为构建过程先决条件的一部分。独立于msbuild进程,单元测试运行没有问题并成功;但是,当我将它们合并为构建过程的一部分时,我在构建中遇到以下异常:ExceptionNUnit.Core.UnsupportedFrameworkException,ExceptionthrownexecutingtestsinD:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dllNotestisavailableinD:\Builds\4\PA11
当我在单元测试session窗口中选择一个NUnit测试并单击调试时,该窗口消失了。我的断点已命中,但如果我按下F5,单元测试session窗口不会返回,直到测试返回结果或我停止调试session。这使我无法在测试期间查看任何控制台输出。有什么想法吗? 最佳答案 原来是ResharperTestRunner行为不端。答案是使用ReSharper->Windows->UnitTestSessions或Ctrl+Alt+R如果使用IntelliJ快捷方式。 关于c#-单元测试session窗
我有几个包含某些场景的功能文件。我需要忽略几个场景或功能,根据某些条件用一些@tag标记。我读过specflowdocumentation但没有找到对我的解决方案有用的东西。我想用类似的东西[BeforeScenario("sometag")]publicstaticvoidBeforeScenario(){if(IgnoreTests){//ThisisthehotspotScenario.DoSomethingToIgnoreScenarioIfConditionButRunScenarioIfConditionFalse();}}我也试过动态添加或删除标签[BeforeScena
我想测试一个具有高圈复杂度的方法(叹息),我想在测试类中有一个类,这样一个方法测试类就会作为树中的一个节点出现。Nunit是否可行?如何实现?MyEntityTests|L_MyComplexMethodTestsLwhen_some_condition_thanLwhen_some_other_condition_than[TestFixture]publicclassMyEntityTests{[TestFixture]publicclassMyComplexMethodTests{[Test]publicvoidwhen_some_condition_than(){}etc...
我一直在阅读有关使用计时器和线程进行单元测试的问题。我发现了有关单元测试system.threading.timers的SO问题,但我需要对system.timers.timer进行单元测试,而包装类似乎无法正常工作。我只需要知道如何模拟计时器和/或系统时间,以便对其进行单元测试。我似乎无法在谷歌上的任何地方找到这个。编辑和更新:这是有道理的,如果我通过如下包装提取计时器,我可以生成一个计时器并使用模拟将其替换为不同的计时器。相关的部分是获取我在运行时注入(inject)的计时器(原始的,而不是模拟的)并测试它的已用事件代码。 最佳答案
在TestInitialize中进行异步调用是不正确的设计,因为TestInitialize必须在任何TestMethod之前发生并且具有固定的签名。这在任何方面都可以是正确的方法来进行异步TestInitialize吗?privateintval=0;[TestInitialize]publicasyncTaskTestMehod1(){varresult=awaitLongRunningMethod();val=10;}[TestMethod]publicvoidTestMehod2(){Assert.AreEqual(10,val);}有什么想法吗?