草庐IT

c# - 测试集合是否包含基于特定属性的对象

我正在使用NUnit2.5.7。我想根据某个类的属性测试特定类的自定义对象集合是否包含某些对象。例如一个人为的例子...publicclassPerson{publicstringName{get;set;}publicPerson(stringname){Name=name;}}//...publicListGetFavouritePeople(){ListfavouritePeople=newList();favouritePeople.Add(newPerson("joe"));favouritePeople.Add(newPerson("fred"));favouritePeo

c# - 在 c# 解决方案中未发现 nunit 测试

以下是我的开发设置的配置(不需要所有这些;但我想我还是会提供这些信息)VisualStudio2012更新4单元2.6.3Nunit测试适配器1.1Windows7旗舰版64位我正在研究的解决方案有许多使用Nunit用c#编写的单元测试。我以管理员身份登录。出于某种原因,我无法在测试资源管理器中查看测试。打开解决方案后,VS显示的错误消息是“检测到意外错误。查看输出Pane了解详细信息”输出Pane只提到检测到0个测试我尝试了从重新安装Nunit、修复VS到重置IDE和窗口布局的所有方法。没有成功。如果我在笔记本电脑上以其他用户身份登录,我可以在测试资源管理器中查看测试。鉴于上面的第4

c# - 调用扩展方法的设置结果

我正在尝试Setup返回对扩展方法的调用并正在接收:SetUp:System.NotSupportedException:Expressionreferencesamethodthatdoesnotbelongtothemockedobject:m=>m.Cache.GetOrStore("CacheKey",()=>"Foo",900)引用GetOrStore似乎有问题Cache对象上的方法,它是一种扩展方法。代码编译但测试失败并出现此异常。我需要做什么来设置这样的扩展方法的结果? 最佳答案 扩展方法不能像实例方法一样被模拟,因为

c# - 在单元测试中循环

我们可以在单元测试中有一个循环吗?我的方法返回一个IEnumerable,我想对IEnumerable所在的逻辑进行单元测试被build。基本上我想测试IEnumerable中元素的数量符合预期。我想不出另一种方法来测试内部IEnumerable没有循环语句。如果这是一个好的做法,请告诉我。 最佳答案 没有技术原因您不能这样做。一个单元测试中可以有多个Assert语句。在循环中使用Assert语句只是在测试中使用多个Assert语句的简写方式。但是,有些人认为单元测试中应该只有一个Assert语句。我个人不同意-我认为测试应该测试一

C#,NUnit : Is it possible to test that a DateTime is very close, 但不一定等于另一个?

假设我有这个测试:[Test]publicvoidSomeTest(){varmessage=newThing("foobar");Assert.That(thing.Created,Is.EqualTo(DateTime.Now));}例如,这可能会使Thing的构造函数失败,这会花费一些时间。是否有某种NUnit构造允许我指定Created时间不必完全等于DateTime.Now,只要它在一秒之内?是的,我知道构造函数不应该花费太多时间,但只是作为一个例子:p 最佳答案 没试过,但根据thedocs看起来这应该可行:Assert

C# - 在单元测试中断言两个对象相等

使用Nunit或Microsoft.VisualStudio.TestTools.UnitTesting。现在我的断言失败了。[TestMethod]publicvoidGivenEmptyBoardExpectEmptyBoard(){vartest=newBoard();varinput=newBoard(){Rows=newList(){newRow(){Cells=newList(){0,0,0,0}},newRow(){Cells=newList(){0,0,0,0}},newRow(){Cells=newList(){0,0,0,0}},newRow(){Cells=new

c# - 是否可以为所有测试设置 [OneTimeSetup]?

我正在使用NUnit运行一些Selenium测试,我遇到了一个小问题,我想看看是否可以得到更正。发生的情况是[OneTimeSetUp]和[OneTimeTearDown]在每个fixture完成后运行。我想要的是在测试开始时运行一次[OneTimeSetUp],并在所有固定装置完成后运行拆卸。TestBaseClass.cspublicclassTestBaseClass{[OneTimeSetUp]publicvoidInit(){//Login}[OneTimeTearDown]publicvoidTearDown(){Driver.Close();}}导航测试[TestFixt

c# - 如何在 Windows 上安装 NUnit 3 控制台并运行测试?

我想从这样的控制台运行测试(在任何目录中,DLL文件可以用于不同的.NET版本):$nunit3-consoletest.dll我在谷歌上搜索了很多,但找不到如何设置它。官方教程没有任何用处,完全为零。跟随它让我无处可去:https://github.com/nunit/docs/wiki/Installation 最佳答案 很难找到,因为有很多过时的文档,无论是针对NUnit2还是NUnit3。步骤:官方NUnit3控制台安装程序在这里:https://github.com/nunit/nunit-console/releases

c# - 如何使用 decimal.MaxValue 进行测试?

考虑以下测试:publicvoidFooTest(decimal?val){Check.That(true).IsTrue();}我想用极端值(即MaxValue和MinValue)运行这个测试。[TestCase(decimal.MaxValue)]这会输出以下错误:属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式[TestCase(79228162514264337593543935)]我现在明白了:积分常数太大最后一次绝望的尝试:[TestCase(79228162514264337593543935M)]显然我得到这个是因为强制转换:属性参数必须是属性

javascript - 使用 qUnit 时如何在每次测试前运行一个函数?

什么是qUnit的nUnits[SetUp]属性? 最佳答案 注册一个QUnit回调varmySetupFunc(details){/*setupcode*/}QUnit.testStart(mySetupFunc);回调详情从QUnit版本1.10.0pre-A开始,每个注册callback将接收一个散列作为第一个(也是唯一的)参数。我在上面的示例中将我的命名为“详细信息”。哈希的内容因回调而异。这是每个散列中的信息列表。begin(开始所有测试){}/*emptyhash*/done(所有测试结束)失败:(int)总测试失败通过