问题标签 [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.
java - 异常与断言
assert
Java异常处理和使用条件有什么区别?
众所周知,Assert 有两种类型。但是我们什么时候应该使用assert
关键字呢?
python - 支持非致命故障的 Python 测试框架
我正在评估自动化系统测试的“测试框架”;到目前为止,我正在寻找一个 python 框架。在 py.test 或鼻子中,我看不到我从谷歌测试框架中知道的 EXPECT 宏之类的东西。我想在一个测试中做出几个断言,而不是在第一次失败时中止测试。我是否在这些框架中遗漏了某些东西,或者这不起作用?有人对可用于自动化系统测试的python测试框架有建议吗?
python - Python 断言——改进了对失败的自省?
这是一个相当无用的断言错误;它不会告诉所涉及的表达式的值(假设使用的常量实际上是变量名):
Python中有更好的assert
实现吗?-O
它不能在执行过程中引入额外的开销(除非断言失败)......并且如果使用标志,则必须关闭。
编辑:我知道断言的第二个参数是一个字符串。我不想写一个 .. 因为它被编码在被断言的表达式中。干燥(不要重复自己)。
c# - 为什么 Assert.AreEqual(T obj1, Tobj2) 使用相同的字节数组失败
我在以下代码段中有两个相同的字节数组:
两个数组在字节上都是相同的。在这种情况下,为什么 Assert.AreEqual 会失败?
iphone - 如何编写一个可以带参数的宏?
我想使用一些 NSAssert 的东西和其他东西来更好地调试我的应用程序。NSAssert 想要一个在断言失败时打印的字符串。很好,但没用,除非你在那个字符串中输入一大堆信息,如果到处都是这样,可能会变得一团糟。
所以我想制作一个宏来执行 NSAssert 调用,其中包含一个充满有用信息的字符串,如类名、方法名和其他内容。但更重要的是,我还想提供自定义评论。想象一个这样的宏:
USEFUL_ASSERT(foo != nil, @"那不好,真的")
由于很多原因,我不能在这里使用函数或方法调用,因为上下文会丢失,而且我无法找出哪个类导致了该问题,哪个方法导致了该问题。这只能在该方法本身内部完成,因此我必须为这些信息传递大量参数,例如 [self class] 和 _cmd,但我不希望所有这些东西散落在各处。插入的代码越短,维护得越好。
任何想法?
c++ - 异常与错误代码与断言
我正在开发一个生成设备报告的库。generate_report (const std::string& no)
成员函数可能由于各种原因而失败:
- 报告编号无效
- 无效状态(
report_generator
是 FSM) - 没有设备处于活动状态
- 报告生成期间的错误
哪种错误处理机制最适合这些错误?
- 只是返回
true
或false
- 返回错误代码
- 断言并记录
- 抛出异常
- 以上任意组合
一些上下文信息:正常的工作流程如下。用户激活设备,从列表中选择报告并单击“生成”。
编辑:感谢到目前为止的回复!对我来说,现在很清楚何时使用断言以及何时进行错误处理。至于错误处理,错误代码和异常各有利弊。我想我会寻找例外(并为上述错误创建四个类),但我还没有真正相信。我总是想到“意外情况”的例外情况。一个无效的报告不是真的出乎意料。有什么建议吗?:)
mfc - MFC 应用程序在关闭时崩溃
我有一个工作的 MFC 应用程序(一个对话框应用程序),我删除了它的一些按钮并添加了一个新按钮,但现在当它关闭时应用程序崩溃了。它在ASSERT()宏之一中失败。调试断言在这些行上失败
文件:afxtempl.h 行:558
当我查看该代码时,它是这样的
关于出了什么问题的任何线索?该应用程序在早些时候运行良好,但我把它搞砸了。
c++ - 断言检查的便捷策略
有些断言成本很高,有些则最好在生产代码中关闭。至少还不清楚断言是否应该始终启用。
在我的应用程序中,我希望能够在每个文件或每个类的基础上打开/关闭部分断言。
如何在 C++ 中做到这一点?
c++ - 等待调试器崩溃?
当断言失败或存在分段错误时,发生以下情况之一将非常方便:
- 程序询问是否运行调试器。
- 程序等待崩溃,直到附加调试器。
- 程序留下了一些东西(核心转储?),我们可以从这一点恢复执行并进行调查。
由于平台、语言和调试器的多样性,这个问题非常笼统。我问的是 C++,我猜 Windows (VS)、Linux (gdb)、Mac (gdb?) 解决方案对社区最有用。我对 Linux + gdb 感兴趣。
c++ - 在 C++ 类中折叠断言?
所以,在非类的情况下,我可以做这样的事情:
如果改为val_to_check
声明const
,则编译器可以折叠该断言。
我很好奇是否可以使用类的成员变量获得类似的常量折叠。例如,我可以执行以下操作:
所以在定义类时必须知道 val_,a-la:
(我知道这些都是人为的例子)。似乎有时应该可以将断言折叠起来,但我测试过的简单示例似乎并没有这样做。我得到的最好的是将断言代码移动到函数的末尾(使用 -O3 编译时)