- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一些代码中我发现了下面一行:
CPPUNIT_ASSERT(1, val.getBytefield().size());
这真的比较两个参数是否相等吗?通常,我希望与 CPPUNIT_ASSERT_EQUAL 进行比较:
CPPUNIT_ASSERT_EQUAL(1, val.getBytefield().size());
测试编译并且断言在情况 1 中有效,但在情况 2 中无效。区别在哪里?
最佳答案
对我来说,这看起来像是损坏的代码,可能是进行了一些重构或其他编辑的结果。
CPPUNIT_ASSERT
宏接受一个参数——一个条件表达式——并断言该条件为真(即,如果为假则失败)。
这段代码试图传递两个参数,但这里的逗号实际上不是用作参数分隔符,而是用作(有点晦涩)comma operator。 .逗号运算符计算其第一个操作数,丢弃结果,然后计算第二个操作数的结果。因此,初始 1
是一个不相关的空操作。代码等同于:
CPPUNIT_ASSERT(val.getBytefield().size());
这意味着它断言字节字段具有非零大小。
显然,这与您的第二段代码不同:
CPPUNIT_ASSERT_EQUAL(1, val.getBytefield().size());
断言字节字段的大小正好等于 1。
关于带有两个参数的 C++ CPPUNIT_ASSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882885/
在一些代码中我发现了下面一行: CPPUNIT_ASSERT(1, val.getBytefield().size()); 这真的比较两个参数是否相等吗?通常,我希望与 CPPUNIT_ASSERT_
我正在尝试完成屏幕抓取作业。我的 cpp 有效,但我不知道如何集成我的单元测试。我试图对文件有效性进行 bool 检查单元测试,但它给了我这个错误: error: cannot call member
我有一组类,我正尝试对其应用单元测试,以在未来的修订中保持它们当前的效用。 我的问题是,在我刚接触的 CPPUNIT 中,无论我在哪里调用 CPPUNIT_ASSERT([条件]),我都会遇到错误未处
我是一名优秀的程序员,十分优秀!