首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当actual和expected都是相同的字符串值时,为什么sinon.assert.match(actual,expected)会抛出AssertError?

sinon.assert.match(actual, expected)是sinon.js库中的一个断言方法,用于判断actual和expected是否匹配。当actual和expected都是相同的字符串值时,根据sinon.js的文档,如果断言失败,即actual和expected不匹配,sinon.assert.match会抛出AssertError。

可能的原因是,sinon.assert.match方法在判断字符串匹配时,使用了严格相等(===)的比较方式。严格相等要求比较的两个值不仅值相等,而且类型也要相等。虽然actual和expected的值相同,但它们可能具有不同的类型,例如一个是字符串,另一个是数字。因此,当actual和expected的类型不匹配时,sinon.assert.match会抛出AssertError。

为了解决这个问题,可以使用其他方法来判断字符串的匹配,例如使用正则表达式进行模式匹配。另外,还可以使用sinon.js提供的其他断言方法,如sinon.assert.equals(actual, expected),该方法使用松散相等(==)的比较方式,只要值相等即可,不要求类型相等。

总结: 当actual和expected都是相同的字符串值时,sinon.assert.match(actual, expected)会抛出AssertError的可能原因是它使用了严格相等的比较方式,要求比较的两个值不仅值相等,而且类型也要相等。如果actual和expected的类型不匹配,就会抛出AssertError。可以考虑使用其他方法进行字符串匹配,或者使用sinon.js提供的其他断言方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java重要知识点(继承、多态、接口,异常,工具,测试)

重载、多态、接口 多态调用顺序 父类,子类有Static,先初始化Static,再初始化子类Static,再初始化父类其他成员变量->父类构造方法->子类其他成员变量->子类构造方法...{ System.out.println("2、" + e.getClass().getName() + "异常"); } // 03 错误类型对象存储到一个对象数组抛出异常...I/O 异常抛出IOException // 17.文件已结束异常EOFException try { File f = new File(...actual都是String类型,ComparisonFailure还会找出是前后相同串,并用[Different String]标明那些不相同字符串,也就是expectedToStringactualToString...其中“…”只会在相同字符串太长情况下才会出现,这个长度标准目前(JUnit4.10)是20个字符。

65940

使用TestNG中HardAssertSoftAssert断言

,断言失败并打印message信息 Assert.assertEquals(actual, expected) TestNGassertEquals()方法提供了超过30多种重载方法,这些方法支持不同数据类型集合类操作.../** * Assert.assertEquals(str1, str2); * 在比较数组时候,比较是数组长度以及数组下标对应是否相等 * 在比较字符串时候,区分大小写 */ @...actualexpected比较结果如果不相等,抛出断言异常并显示message信息。..."); } 与 Assert.assertEquals 相反是Assert.assertNotEquals(actual, expected, message),actualexpected 不相等的话则断言成功...assertSame(actual, expect, “message”) 断言两个对象相同,这里相同上面的Equals不同,Equals是比较,而Same是内存地址比较 与assertSame(actual

1.1K10
  • 单元测试框架系列教程8-TestNg中Assertion

    我们最常用就是assertEquals(actual, expected)或者assertEquals(actual, expected,“message1”) 举例: package testng;...上面可以看出assertEquals(actual, expected,“message1”)中,如果现实结果期待结果不相等,抛出断言异常并显示message1内容,上面红圈就是我们填写message1...自动化测试一般喜欢带上这个message1,这样抛出错误,更能快速读懂错误原因错误具体业务逻辑。...2) assertEqualsNoOrder((actual, expect) 判断两个对象是否相同,忽略排序位置。例如下面的两个字符串数组比较。...6) assertSame(actual, expect, “message”) 断言两个对象相同,这里相同上面的Equals不同,Equals是比较,而Same是内存地址比较。

    1K20

    assertequals() php,assertEquals()

    assertEquals() assertEquals(mixed expected, mixed actual[, string 两个变量 expected actual 不相等时报告错误,错误讯息由...如果 expected actual 是某些特定类型,将使用更加专门比较方式,参阅下文。...关于为什么 $delta 参数是必须,请阅读《关于浮点运算,每一位计算机科学从业人员都应该知道事实》。 Example A.14. 将assertEquals()用于浮点数用法 <?... expected actual 这两个 DOMDocument 对象所表示 XML 文档对应无注释规范形式不相同时报告错误,错误讯息由 Example A.15. assertEquals... actual 这两个对象属性不相等时报告错误,错误讯息由 Example A.16. assertEquals()应用于对象用法 <?

    50010

    GTest 总结_gtest单元测试

    断言失败Gtest将会打印出assertion源文件出错行位置,以及附加失败信息。这些输出附加信息用户可以直接通过“<<”在这些断言宏后面。...ASSERT_* 系列断言(Fatal assertion),检查点失败,退出当前函数(注意:并非退出当前案例)。...EXPECT_* 系列断言(Nonfatal assertion),检查点失败,继续执行下一个检查点(每一个断言表示一个测试点)。...1.3字符串检查 Fatal assertion Nonfatal assertion Verifies ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ...所有局部测试都是正确,验证了固件类中数据恒定性,每个测试特例都是要新建一个新PositiveNumTest对象,并在该测试特例结束销毁它,这样可以保证数据干净。

    1.8K10

    JUnit5学习之三:Assertions类

    方法,及其执行效果: 将Assertions.assertEquals方法逐层展开,如下图所示,可见入参expectedactual如果不相等,就会在AssertionUtils.fail..., // 这个lambda表达式,只有在expectedactual不相等才执行 ()->String.format("期望[%d]...; 如果execute方法执行时不抛出异常,或者抛出异常与期望类型不一致,都会导致测试失败; 写段代码验证一下,如下,1除以0抛出ArithmeticException异常,符合assertThrows...入参,其execute方法会在一个新线程执行,假设是XXX线程,等待时间超过入参timeout,XXX线程就会被中断,并且测试结果是失败,下面是assertTimeoutPreemptively...; springboot默认依赖了hamcrest库,依赖关系如下图: 一个简单基于hamcrest匹配器单元测试代码如下,由于预期实际不相等,因此匹配失败: package

    63030

    【译】单元测试最佳实践

    编写具有良好命名测试用例,每个用例可以清晰说明对于给定输入会有怎样输出。此外,测试用例还应可以验证方法是否能够正常工作。 4....Assert.Equal(0, actual); } ---- 避免使用魔法字符串(magic strings) 单元测试中变量命名生成代码中变量命名同等重要,它们不应包含魔法字符串。...为什么这么做 不要让阅读测试代码的人对某个特殊产生疑惑而不得不去阅读生产代码 显式表明你要证明东西 魔法字符串会让阅读测试代码的人产生疑问,某个特定到底表示什么意思。...你应当充分信任自己测试用例,测试失败就应该判定被测试代码有错误,这是不容忽视(不应因为有逻辑分支到而至某些方面未测试到)。...不同测试用例需要不同测试条件,但Setup强制不同测试用例使用相同测试条件。 xUnit框架在2.0+版本已经移出了SetUpTearDown方法。

    2.3K40

    Java 中常见单元测试(一):JUnit 篇

    我们为什么写不好单元测试 写不好单元测试情况有很多,很多时候我们也是被需求压着身不由己就开始 “ 胡编乱写” 了。...当然如果重构已经改变原来整体逻辑,单元测试也要跟着改动 开发者向软件添加越来越多功能,有时需要更改旧设计代码。然而,更改已经测试过代码既有风险又代价高昂。...:message 失败后提示信息;expected 预期结果;actual 实际结果; 代码实现其实是只要 expected actual 不相等就抛异常 方法签名 描述 用途 fail(String...) 实际结果必须预期结果是同一个对象 比如单例测试 assertNotSame(Object expected, Object actual, String message) 实际结果必须预期结果不是同一个对象...,其他也可以各自尝试一下,使用方法相同

    7.2K40

    SpringBoot学习笔记(二)——SpringBoot测试JUnit5、 SpringBoot 配置、Spring IoC与自动装配

    =one” 指定参数 classes 指定启动类,可以是多个 value 指定配置属性 properties 指定配置属性,value相同 webEnvironment 指定web环境, MOCK 此为默认...Bean、模拟方法返回、模拟抛出异常等等,避免你为了测试一个方法,却要自行构建整个 bean 依赖链。...Spring DAO:JDBC DAO 抽象层提供了有意义异常层次结构,可用该结构来管理异常处理不同数据库供应商抛出错误消息。...IOC容器,实现了ApplicationContextAware类在容器中被初始化和加载后,自动调用ApplicationContextAware中setApplicationContext方法...找不到与名称匹配bean才按照类型进行装配。但是需要注意是,如果name属性一旦指定,就只会按照名称进行装配。

    4K10

    MySQL疑难杂症01:主机系统表损坏导致复制全部中断

    RESET SLAVE:不带 ALL 关键字,该命令删除从服务器上中继日志(relay logs),并重置复制相关系统变量,但不会改变复制配置(如主服务器地址复制用户凭证)。...RESET SLAVE ALL(在 MySQL 5.5.16 及更新版本中可用):使用 ALL 关键字,该命令不仅执行 RESET SLAVE 命令所有操作,还会清除复制配置,包括主服务器信息、...expected_error != actual_error:预期错误代码与实际发生错误代码不相同。 !...,last_committed 相同表示事务处于同一个 Binlog Group 中、也表示主库中这些事务在并行提交没有锁冲突。...从库在应用二进制日志,具有相同ast_committed事务可以并行回放,在每个二进制日志文件中,sequence_number不允许重复。 4.

    16710

    Java魔法堂:JUnit4使用详解

    equals方法,否则默认equals方法会使用==方式来比较对象内存地址是否相同,而不是内容是否相同。...当然也可以通过去除注解 @Test 来达到这个目的,但去除注解 @Test 令到eclipseJUnit View中无法显示该测试方法。...四、异常测试                                   通过注解 @Test(expected=Class类型) 来标注期待测试方法执行时抛出哪种异常对象,若测试方法不抛出异常或异常对象与期待异常对象不相同则测试失败... matcher); * 入参actual为实际,入参matcher为期待匹配符 */ //测试变量是否大于指定 assertThat(1, greaterThan(50)); //...用于假设条件成立时才会执行后续代码,条件不成立时是不会影响测试结果。

    75350

    #Android单元测试学习总结「建议收藏」

    , boolean condition) 断言结果为false, 为true抛出异常携带指定message信息 assertEquals(long expected, long actual) 断言两个...long 类型 expected actual 相等 assertEquals(String message, long expected, long actual) 断言两个long 类型 expected... actual 相等,如不相等则抛异常携带指定message信息 assertEquals(Object expected, Object actual) 断言两个对象相等 assertEquals...] actual) 断言两个相同类型数组元素一一对应相等 assertArrayEquals(String message, T[] expected, T[] actual) 断言两个相同类型数组元素一一对应相等...抛出异常 mockedList.clear(); } doXXXthenXXX使用上差不多,一个是调用方法之前设置好返回,一个是在调用方法之后设置返回

    5.1K20

    Jest测试语法系列之Expect

    ,就可以使用expect函数,你可能很少会调用expect本身,相反,你将使用expect“matcher”函数来断言关于某些内容。...pass指示是否存在匹配,message提供了一个没有参数函数,在失败返回错误消息。因此pass为falseexpect(x). yourmatcher()失败,消息应该返回错误消息。...pass为true,消息应该返回expect(x).no . yourmatcher()失败错误消息。 this.equals(a, b) 如果两个对象具有相同(递归地),则返回true。...Object.is): "banana" Received: "apple" 断言失败,错误消息应该向用户提供必要尽可能多信号,以便用户能够快速地解决问题。...我们使用tohave属性来检查对象中各种属性存在性

    3.6K20

    剑指Offer面试题:34.翻转单词顺序VS左旋转字符串

    一、题目一:翻转单词顺序 1.1 题目说明 题目一:输入一个英文句子,翻转句子中单词顺序,但单词内字符顺序不变。为简单起见,标点符号普通字母一样处理。...} // 边界测试,字符串中只有空格 [TestMethod] public void ReverseTest4() { string input =...二、题目二:左旋转字符串 2.1 题目说明 题目二:字符串左旋转操作是把字符串前面的若干个字符转移到字符串尾部。请定义一个函数实现字符串左旋转操作功能。...接下来我们再翻转整个字符串,得到"cdefgab"刚好就是把原始字符串左旋转2位结果。   通过分析可以发现,我们只需要调用三次Reverse方法就可以实现字符串左旋转功能。...(actual, expected); } // 边界测试 [TestCategory("LeftRotate")] [TestMethod] public

    25320
    领券