首页
学习
活动
专区
工具
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]标明那些不相同的字符串,也就是expectedToString和actualToString...其中“…”只会在相同的字符串太长的情况下才会出现,这个长度标准目前(JUnit4.10)是20个字符。

66940

使用TestNG中HardAssert和SoftAssert断言

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

1.2K10
  • 单元测试框架系列教程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()应用于对象时的用法 <?

    50310

    JUnit5学习之三:Assertions类

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

    64430

    GTest 总结_gtest单元测试

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

    1.9K10

    【译】单元测试最佳实践

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

    2.3K40

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

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

    7.7K40

    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属性一旦指定,就只会按照名称进行装配。

    4.2K10

    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.

    19110

    Java魔法堂:JUnit4使用详解

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

    76250

    #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(); } doXXX和thenXXX使用上差不多,一个是调用方法之前设置好返回值,一个是在调用方法之后设置返回值。

    5.1K20

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

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

    25620

    Jest测试语法系列之Expect

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

    3.7K20
    领券