草庐IT

CPPUNIT_ASSERT_EQUAL

全部标签

c# - 流利的断言 : Assert one OR another value

使用流畅的断言,我想断言给定的字符串包含两个字符串之一:actual.Should().Contain("oneWay").Or().Should().Contain("anotherWay");//eitervalueshouldpasstheassertion.//forexample:"youmaydoitoneWay."shouldpass,but//"youmaydoitthisWay."shouldnotpass只有当两个值都不包含时,断言才会失败。这不起作用(甚至无法编译),因为没有Or()运算符。我现在是这样做的:boolisVariant1=actual.Contai

c# - NUnit 不能很好地与 Assert.AreEqual 配合使用

我是单元测试的新手,尤其是NUit。我只是从书中输入一些涉及Java和JUnit的示例。但我改用C#。问题是:我有一个带有重写方法的类,例如Equals()和GetHashCode(),但是当我尝试比较的两个对象时这个类Assert.AreEqual()我的代码没有被调用,所以我得到一个异常。Assert.True(MyClass.Equals(MyClass2))运行良好。但我不想使用此构造代替Assert.AreEqual()。问题出在哪里?这是类:publicclassMoney{publicintamount;protectedstringcurrency;publicMone

c# - Assert.AreEqual 与 Assert.IsTrue/Assert.IsFalse

测试返回类型为bool的方法时。你应该:expected=true;Assert.AreEqual(expected,actual);或Assert.IsTrue(actual);我知道它们都产生相同的结果,但哪种做法更好?编辑:例如,如果我执行AreEqual,它与在返回字符串ala的方法上执行IsTrue本质上不一样吗:stringexpected=“true”;stringactual=test.testMethod(data)booltest;ifexpected.equals(actual)test=true;elsetest=false;Assert.IsTrue(test

c# - 当 Debug.Assert 失败时导致 VS2010 调试器中断

当Debug.Assert的参数计算为false时,是否有任何方法可以导致VisualStudio2010在调试时中断?示例:在我的代码中有这样的行:Debug.Assert(!double.IsInfinity(x));如果我没有调试,断言失败时会弹出一个窗口。但是当我调试时,断言被记录到“输出”Pane中,这很容易被遗漏;没有弹出窗口,调试器不会停止。因此:当Debug.Assert失败时,是否有任何方法可以强制VisualStudio调试器中断?(顺便说一句:我正在开发基于WPF的桌面应用程序。在Windows窗体应用程序中,行为似乎有所不同:此处,调试器在Debug.Asser

c# - 使用 Arrange-Act-Assert 进行单元测试时是否推荐标题注释?

我发现按照AAA模式中的建议对单元测试语句进行分区的概念很有用。我倾向于添加标题注释,以便测试看起来像这样://Arrangeinta=1;intb=2;//Actintc=a+b;//AssertAssert.AreEqual(3,c);但我很好奇,总是包含这些标题注释是否正常?...或者这是我应该避免的事情?inta=1;intb=2;intc=a+b;Assert.AreEqual(3,c); 最佳答案 一旦理解了基本前提,这似乎并没有增加太多值(value)。既然你提到了C#,我建议看看TheArtofUnitTesting

c# - Assert.AreEqual 对 int 和 ulong 失败但对 long 和 uint 失败

好吧,我希望我的处理器没有烧毁,因为:[TestMethod]publicvoidtenEqualten(){Int64a=10;UInt32b=10;Assert.AreEqual(a,b);}工作得很好,但是这个:[TestMethod]publicvoidtenNotEqualten(){Int32a=10;UInt64b=10;Assert.AreEqual(a,b);}惨败。你有没有得到相同的结果,还是只有我?如果是,有什么想法,为什么?如果这是.Net4.5的已知问题,那么抱歉垃圾邮件,但我找不到它作为错误。编辑:我找到了重复的here和解释here

c# - 使用 Single 作为 Assert 是一种不好的做法吗?

我正在测试一种操作集合的方法。给定一组参数,它应该只包含一个与条件匹配的元素。编辑:该集合可能还有其他几个不符合条件的元素。我正在使用Single测试该行为,效果很好,因为如果根本没有匹配项或多个匹配项,它将通过抛出异常来使测试失败。但是没有实际的断言,它以某种方式违反了arrange、act、assert。所以我想知道这是否是一种不好的做法,是否有更好的方法来做到这一点。以下伪代码演示我的问题:[TestMethod]publicvoidTestMethod(){Listlist=MethodToTest(param1,param2);list.Single(s=>s.Matches

c# - NUnit:为什么 Assert.Throws<T> 没有捕获我的 ArgumentNullException?

我应尊敬的JohnSkeet先生的要求重新发布这个问题,他建议我设计一个简单的测试程序来隔离和演示我遇到的问题并重新发布这个问题。这个问题源于thisone,所以如果这一切听起来很熟悉,请原谅我。您可能会从那个问题中收集到关于这个问题的额外详细信息。我遇到的问题是Assert.Throws来自NUnit2.5.9。有时,它无法捕获在TestDelegate调用的方法中抛出的任何异常。我在下面的代码中以可重现的方式确定了这种行为。(尽管这可能是FailsOnMyMachine™的一个例子。为了重现错误,我创建了一个包含两个C#DLL项目的解决方案:第一个包含一个类,具有一个公共(publ

javascript - 检测到具有不兼容类型的二元运算符。为运算符种类 'Edm.Guid' 找到操作数类型 'Edm.String' 和 'Equal'

从我的KendoListView调用OData时出现以下异常:"Abinaryoperatorwithincompatibletypeswasdetected.Foundoperandtypes'Edm.Guid'and'Edm.String'foroperatorkind'Equal'"解码过滤器:$filter=OrganizationIdeq'4c2c1c1e-1838-42ca-b730-399816de85f8'编码过滤器:%24filter=OrganizationId+eq+%274c2c1c1e-1838-42ca-b730-399816de85f8%27还尝试了这些过

javascript - 删除生产代码中的 console.assert

我正在使用console.assert来测试/调试,但我想在生产代码中删除它。我现在基本上是将console.assert改写为noop函数,但想知道是否有更好的方法。如果有一些javascript预处理器来删除它,那将是理想的。 最佳答案 UglifyJS2这样做很容易:当运行uglifyjs命令时,启用压缩器并告诉它放弃console.*调用:uglifyjs[inputfiles]--compressdrop_console简单示例:functiondoSomething(){console.log("Thisisjustad