草庐IT

unit-testing

全部标签

c# - 如何从测试项目中获取项目路径?

我在与我在VisualStudio中的项目相同的解决方案中设置了一个单元测试项目。单元测试是通过VisualStudio中的内置单元测试工具完成的(包含在Premium及更高版本中)。在测试项目中运行单元测试时,我需要加载项目本身路径中的文件,而不是测试项目中的文件。要包含的文件是主项目的一部分,并具有以下属性:构建操作:内容复制到输出目录:总是我需要为依赖于此文件的函数编写单元测试,否则我将遇到错误状态并且无法为该函数编写100%覆盖率的测试。如何从单元测试项目中获取实际项目的执行路径?编辑:特定函数读取配置文件中的所有行并将它们一次一行地存储在列表中。示例代码如下:publicLi

c# - 如何验证是否调用了两种方法中的一种?

我正在使用Moq来验证是否在我的单元测试中调用了一个方法。在这种特定情况下,我想测试被测方法是否通过log4net记录错误。问题是,这可以通过调用log.Error或log.ErrorFormat来完成。两者都可以。我如何验证这一点?我只知道如何验证他们都被调用了。varlogMock=newMock();varmyClass=newMyClass(logMock.Object);myClass.MyMethod();logMock.Verify(log=>log.Error(It.IsAny()));logMock.Verify(log=>log.ErrorFormat(It.IsA

c# - xunit.runner.visualstudio 是否不适用于 Visual Studio

我已经完成了这样的nuget安装:Install-Packagexunit.runner.visualstudio-Version2.2.0在我的测试项目上。我有一个类似这样的测试:publicclassWhen_Doing_Stuff_I_Want_To_Test{[Fact]publicvoidCan_Do_Stuff(){varresult=DoStuff();result.ShouldNotBeNull();result.Success.ShouldBeTrue();}}虽然我已经完成了多次VS重启、笔记本电脑重启,中间还有一天,但VS2017仍然无法发现我的测试:Whatca

c# - AutoFixture重构

我开始使用AutoFixturehttp://autofixture.codeplex.com/因为我的单元测试因大量数据设置而变得臃肿。与编写单元测试相比,我花在设置数据上的时间更多。这是我的初始单元测试的示例(示例取自DDD蓝皮书的cargo应用程序示例)[Test]publicvoidshould_create_instance_with_correct_ctor_parameters(){varcarrierMovements=newList();vardeparureUnLocode1=newUnLocode("AB44D");vardepartureLocation1=ne

c# - 在循环中使用 NUnit Assert 时,如何在错误消息中显示更多信息?

考虑以下代码:[Test]publicvoidWidgetTest(){foreach(Widgetwidgetinwidgets){Assert.AreEqual(0,widget.SomeValue);}}如果其中一个断言失败,我将收到一条非常无用的错误消息,如下所示:1)TestFailure:WidgetTest.TestSomeValueExpected:0Butwas:1atWidgetTest.TestSomeValue()那么,问题是,如何让NUnit显示更有用的信息,例如小部件的名称或循环的迭代等?即使是行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代

c# - MSTest 显示复合 bool 表达式的部分代码覆盖率

从Microsoft的文档中,部分覆盖的代码是“......行内的一些代码块未执行。”我对这个代码感到很困惑(为简洁起见进行了简化):给定这个方法:publicListCodeUnderTest(){varcollection=newList{"test1","test2","test3"};returncollection.Where(x=>x.StartsWith("t")&&x=="test2").ToList();}这个测试:[TestMethod]publicvoidTest(){varresult=newClass1().CodeUnderTest();Collection

c# - 并行使用 Effort 和 SQL CE 进行单元测试失败

我正在结合使用EF6评估单元测试http://effort.codeplex.com/和SQLCE服务器(本地数据库文件)http://www.codeproject.com/Articles/460175/Two-strategies-for-testing-Entity-Framework-Effort是一个很好的引用,但现在我被困住了。我有2个测试项目(一个用于Effort,另一个用于SQLCE)。如果我分别运行两者,一切都很好。使用ReSharper测试运行器连续运行,最后一个测试项目总是失败。要么System.InvalidOperationException:TheEnti

c# - 使用 Watin 更改 IE 实例的代理设置

我知道我可以更改计算机的全局代理设置,Software\\Microsoft\\Windows\\CurrentVersion\\InternetSettings,以影响使用Watin创建的IE实例.但是有什么办法可以拦截IE浏览器发出的请求并通过代理运行它们呢?我的目标是运行多个IE实例,每个实例都有自己的代理,这对于我上面的当前解决方案是不可能的。 最佳答案 WatiNIE创建多个ProcessIDs(单个实例IE创建多个进程ID)。为了使用FiddlerCore覆盖WatiN的代理设置,我们需要获取所有由WatiNIE创建的子

c# - Visual Studio 2008 单元测试入门

我是一名自学成才的开发人员,我的经验全部来自于我开发的小型应用程序。我目前正在开发一个已公开的应用程序,我意识到我需要开始进行良好的单元测试以捕捉回归并通常确保一切正常。我读过previousquestion.我想知道是否有任何在线资源专门处理VisualStudio2008中的C#单元测试,最好有示例。编辑:我使用的是VisualStudio2008ProfessionalforWindows应用程序,没有Web开发。 最佳答案 您没有指定哪个flavorofVS2008您正在使用。如果它是Pro或更高版本,则捆绑了MSTest,

c# - 单元测试是否使 Debug.Assert() 变得不必要?

我准备好麦康奈尔的“CodeComplete”已经有一段时间了。现在我在Hunt&Thomas的“ThePragmaticProgrammer”中再次阅读它:使用断言!注意:不是单元测试断言,我的意思是Debug.Assert()。遵循SO问题WhenshouldIuseDebug.Assert()?和Whentouseassertionoverexceptionsindomainclasses断言对开发很有用,因为可以很快找到“不可能”的情况。而且它们似乎很常用。据我了解,断言在C#中通常用于检查输入变量的“不可能”值。为了使单元测试尽可能简洁和独立,我使用null和“不可能的”虚拟