我热爱C#的新世界,我的玩具程序已经到了我想开始编写一些单元测试的地步。我的代码当前通过DatabaseDataContext对象(*.dbml文件)使用数据库,为此对象创建模拟的最佳方法是什么?考虑到生成数据库LINQ->SQL代码是多么容易以及这一定是一个多么普遍的请求,我希望VS2010内置了有助于测试的功能。如果我偏离了方向并且必须手动完成此操作,您能否告诉我您的首选方法?非常感谢,加文 最佳答案 DataContext的问题在于它不是为模拟而设计的。模拟不可模拟对象的免费工具是MolesfromPex(Pexmoles?)
我正在使用Nuget(4.1.23.0)上可用的当前版本的MvvmLight,调用RaiseCanExecuteChanged似乎在单元测试中没有做任何事情。场景很简单,我有一个命令:publicRelayCommandFooCommand{get;privateset;}我在View模型构造函数中新建它并将它指向一些私有(private)方法:FooCommand=newRelayCommand(Foo,CanFoo);privatevoidFoo(){//dosomefooing.}privateboolCanFoo(){returnSomeRequiredProperty!=nu
我的一些UnitTest具有在循环中定义的Sleep。我不仅要描述测试的每个迭代,还要描述所有迭代的总时间,以显示任何非线性缩放比例。例如,如果我分析“总体”,则它包括sleep时间。我可以使用StopwatchStart/Stop,以便它仅包含doAction()。但是,我无法将秒表结果写入TestContext结果。[TestMethod]publicvoidTestMethod1(){TestContext.BeginTimer("Overall");for(inti=0;i看来TestContext可以继承并重新定义。但是,我看不到任何将其写回到事务存储的示例。有没有我可以引用
我们有许多表格View(使用XamarinMonotouchDialog),它们是普通的(未分组的)并且设计为全角显示而没有缩进。这在iOS7中一切正常。不过使用iOS8模拟器时,我们得到了轻微的左缩进。iOS8有一个名为LayoutMargins的新属性。我们将该属性设置为零。像这样:if(this.TableView.RespondsToSelector(newSelector("setSeparatorInset:")))this.TableView.SeparatorInset=UIEdgeInsets.Zero;if(this.TableView.RespondsToSele
我正在查看一个非常强调单元测试的现代项目。根据古老的格言“面向对象编程中的每个问题都可以通过引入新的间接层来解决”,该项目采用了多层间接。副作用是相当多的代码如下所示:publicboolIsOverdraft){balanceProvider.IsOverdraft();}现在,由于强调单元测试和保持高代码覆盖率,每段代码都有针对它编写的单元测试。因此这个小方法将有三个单元测试。那些会检查:如果balanceProvider.IsOverdraft()返回true那么IsOverdraft应该返回true如果balanceProvider.IsOverdraft()返回false,那
这个问题在这里已经有了答案:WhatarethedifferencesbetweenmocksandstubsonRhinoMocks?(5个答案)关闭8年前。我最近对测试非常感兴趣,我现在正努力学习以尽可能最好的方式进行单元测试。我将NUnit与RhinoMocks一起使用。我也在Stackoverflow上阅读了很多内容,但未能找到我的问题的明确答案。我想知道的是,如果我有如下所示的方法,我应该模拟OfficeClass依赖项并测试GetAllOffices还是仅对依赖项使用stub并验证方法GetAllOffices已被调用并且我确实得到了办公室返回我对stub设置的预期?pub
如何为异步/等待方法编写单元测试,我使用的是VisualStudio2013。假设我们有一个异步方法:publicasyncTaskDoSomethingAsync(){...await_service.DoInternalAsync();...}由于我使用的是最新版本的VisualStudio,它对异步方法单元测试有很好的支持:[TestMethod]publicasyncTaskDoSomthingAsyncTest(){...await_objectUnderTest.DoSomethingAsync();//howtoverifytheresult???hereiswhatId
我想对我创建的类的方法进行单元测试,但此方法需要先调用另一个方法。示例://ThiswouldworkMyClassmyClass1=newMyClass(mockDevice);myClass1.Run(myDatastructure);myClass1.Stop();//ThiswouldthrowanInvalidOperationExceptionMyClassmyClass2=newMyClass(mockDevice);myClass2.Stop();Run正在硬件设备上开始操作,而Stop当然会尝试停止该操作(发送重置命令并启动超时计时器).无论如何,我想测试调用Stop
我遇到了一个单元测试失败的问题,因为TPL任务从未执行过它的ContinueWith(x,TaskScheduler.FromCurrentSynchronizationContext())。问题原来是因为在任务启动之前不小心创建了一个WinformsUI控件。这是一个重现它的例子。您会看到,如果您按原样运行测试,它就会通过。如果您在未注释Form行的情况下运行测试,它将失败。[TestClass]publicclassUnitTest1{[TestMethod]publicvoidTestMethod1(){//CreatenewsynccontextforunittestSynch
当我在MSTest单元测试中使用DeploymentItem属性时,我无法将XSL文件复制到与测试程序集相同的目录。我遵循了thisquestion的选择答案我需要复制的文件将其“复制到输出目录”设置为“始终复制”。当我检查我的ProjectDir\bin目录(目标目录)时,我想要复制的文件确实在那里,还有DLL和PDB。我有几个具有以下设置的单元测试:privateconststringDLL="Service.dll";privateconststringXSL_PATH="transform.xsl";[TestInitialize]publicvoidInitializeTes