问题标签 [assert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
45184 浏览

java - 异常与断言

assertJava异常处理和使用条件有什么区别?

众所周知,Assert 有两种类型。但是我们什么时候应该使用assert关键字呢?

0 投票
5 回答
1385 浏览

python - 支持非致命故障的 Python 测试框架

我正在评估自动化系统测试的“测试框架”;到目前为止,我正在寻找一个 python 框架。在 py.test 或鼻子中,我看不到我从谷歌测试框架中知道的 EXPECT 宏之类的东西。我想在一个测试中做出几个断言,而不是在第一次失败时中止测试。我是否在这些框架中遗漏了某些东西,或者这不起作用?有人对可用于自动化系统测试的python测试框架有建议吗?

0 投票
7 回答
7864 浏览

python - Python 断言——改进了对失败的自省?

这是一个相当无用的断言错误;它不会告诉所涉及的表达式的值(假设使用的常量实际上是变量名):

Python中有更好的assert实现吗?-O它不能在执行过程中引入额外的开销(除非断言失败)......并且如果使用标志,则必须关闭。

编辑:我知道断言的第二个参数是一个字符串。我不想写一个 .. 因为它被编码在被断言的表达式中。干燥(不要重复自己)。

0 投票
6 回答
32070 浏览

c# - 为什么 Assert.AreEqual(T obj1, Tobj2) 使用相同的字节数组失败

我在以下代码段中有两个相同的字节数组:

两个数组在字节上都是相同的。在这种情况下,为什么 Assert.AreEqual 会失败?

0 投票
2 回答
315 浏览

iphone - 如何编写一个可以带参数的宏?

我想使用一些 NSAssert 的东西和其他东西来更好地调试我的应用程序。NSAssert 想要一个在断言失败时打印的字符串。很好,但没用,除非你在那个字符串中输入一大堆信息,如果到处都是这样,可能会变得一团糟。

所以我想制作一个宏来执行 NSAssert 调用,其中包含一个充满有用信息的字符串,如类名、方法名和其他内容。但更重要的是,我还想提供自定义评论。想象一个这样的宏:

USEFUL_ASSERT(foo != nil, @"那不好,真的")

由于很多原因,我不能在这里使用函数或方法调用,因为上下文会丢失,而且我无法找出哪个类导致了该问题,哪个方法导致了该问题。这只能在该方法本身内部完成,因此我必须为这些信息传递大量参数,例如 [self class] 和 _cmd,但我不希望所有这些东西散落在各处。插入的代码越短,维护得越好。

任何想法?

0 投票
9 回答
13439 浏览

c++ - 异常与错误代码与断言

我正在开发一个生成设备报告的库。generate_report (const std::string& no)成员函数可能由于各种原因而失败:

  1. 报告编号无效
  2. 无效状态(report_generator是 FSM)
  3. 没有设备处于活动状态
  4. 报告生成期间的错误

哪种错误处理机制最适合这些错误?

  • 只是返回truefalse
  • 返回错误代码
  • 断言并记录
  • 抛出异常
  • 以上任意组合

一些上下文信息:正常的工作流程如下。用户激活设备,从列表中选择报告并单击“生成”。

编辑:感谢到目前为止的回复!对我来说,现在很清楚何时使用断言以及何时进行错误处理。至于错误处理,错误代码和异常各有利弊。我想我会寻找例外(并为上述错误创建四个类),但我还没有真正相信。我总是想到“意外情况”的例外情况。一个无效的报告不是真的出乎意料。有什么建议吗?:)

0 投票
3 回答
882 浏览

mfc - MFC 应用程序在关闭时崩溃

我有一个工作的 MFC 应用程序(一个对话框应用程序),我删除了它的一些按钮并添加了一个新按钮,但现在当它关闭时应用程序崩溃了。它在ASSERT()宏之一中失败。调试断言在这些行上失败

文件:afxtempl.h 行:558

当我查看该代码时,它是这样的

关于出了什么问题的任何线索?该应用程序在早些时候运行良好,但我把它搞砸了。

0 投票
3 回答
272 浏览

c++ - 断言检查的便捷策略

有些断言成本很高,有些则最好在生产代码中关闭。至少还不清楚断言是否应该始终启用。

在我的应用程序中,我希望能够在每个文件或每个类的基础上打开/关闭部分断言。

如何在 C++ 中做到这一点?

0 投票
6 回答
801 浏览

c++ - 等待调试器崩溃?

当断言失败或存在分段错误时,发生以下情况之一将非常方便:

  • 程序询问是否运行调试器。
  • 程序等待崩溃,直到附加调试器。
  • 程序留下了一些东西(核心转储?),我们可以从这一点恢复执行并进行调查。

由于平台、语言和调试器的多样性,这个问题非常笼统。我问的是 C++,我猜 Windows (VS)、Linux (gdb)、Mac (gdb?) 解决方案对社区最有用。我对 Linux + gdb 感兴趣。

0 投票
5 回答
269 浏览

c++ - 在 C++ 类中折叠断言?

所以,在非类的情况下,我可以做这样的事情:

如果改为val_to_check声明const,则编译器可以折叠该断言。

我很好奇是否可以使用类的成员变量获得类似的常量折叠。例如,我可以执行以下操作:

所以在定义类时必须知道 val_,a-la:

(我知道这些都是人为的例子)。似乎有时应该可以将断言折叠起来,但我测试过的简单示例似乎并没有这样做。我得到的最好的是将断言代码移动到函数的末尾(使用 -O3 编译时)