问题标签 [assertions]

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 投票
1 回答
282 浏览

python - Python - 为什么使用 assert(required_pa​​ram)?

我今天在查看 API 库时发现了这一点。

这样做会不会更容易:

或者,我错过了什么?

当然,这assert()会为您提供一个可能出现的统一异常,但除非您希望此函数在这种情况下静默失败以执行某些操作,否则您是否宁愿让它大声中断以便尽早发现此类错误?我从来不明白为什么人们在生产代码中使用断言。也许,我会在我得到一些答案后。

0 投票
1 回答
784 浏览

cocoa - 如何让 NSAssert 使应用程序崩溃或至少显示错误对话框?

我在我的代码中使用了相当多的断言,因为它们在调试中很有用,但是 Cocoa 应用程序的标准行为是中断处理并将断言失败记录到控制台.. UI 既不会崩溃,也不会弹出错误对话框发生了什么通常并不明显。

使程序崩溃(至少您会得到跟踪)或弹出错误对话框的最简单方法是什么?

我是否需要提供一个断言处理程序(看起来很复杂!)?或者我可以在运行循环中捕获异常吗?

是否有任何示例代码可用于说明如何最好地做到这一点?

谢谢你的帮助。

0 投票
7 回答
360374 浏览

java - Java/ JUnit - AssertTrue 与 AssertFalse

我对 Java 很陌生,并且正在关注Eclipse Total Beginner's Tutorials。它们都非常有帮助,但在第 12 课中,他assertTrue用于一个测试用例和assertFalse另一个测试用例。这是代码:

我已经搜索了有关这些方法的良好文档,但没有找到任何东西。如果我的理解是正确的,assertTrue以及assertFalse当第二个参数评估为假时显示字符串。如果是这样,同时拥有它们有什么意义?

编辑:我想我明白了什么让我感到困惑。作者可能将它们都放入只是为了展示它们的功能(毕竟这是一个教程)。他设置了一个会失败的设备,以便打印出消息并告诉我为什么会失败。开始变得更有意义......我认为这就是解释,但我不确定。

0 投票
2 回答
155 浏览

c++ - 未安装 CRT 时,您是否在 C++ 下获得调试断言?

当您在未安装 VS 或 CRT 的操作系统上运行 C++ 程序的调试版本时,您还会收到调试断言错误框吗?

那些说“调试断言失败!”的人。

还是只有在机器安装了某些组件(例如 CRT 或 Visual Studio)时才能获得它们?

0 投票
1 回答
1151 浏览

hardware - 将 VHDL 监视器转换为 PSL 断言

我有一个关于 PSL 断言的有趣问题。这是一个VHDL监控程序。这是一个专用于断言的过程,因此是一个不可综合的过程。此监视器检查当前 FSM 状态并存储两个寄存器的值:“ input1”和“ reg136”。最后,它触发一个“ assert”语句来比较这些寄存器的值。

问题是:有没有办法将此监视器转换为 PSL(属性规范语言)断言?

重要提示:寄存器“input1”和“reg136”只能在 fsm 状态分别处于状态 s0 和 s22 时读取。否则,这些寄存器中包含的数据不属于断言变量“a”和“t34”。因此,PSL 语句需要一种方法来读取和存储正确 fsm 状态的值。

谢谢 !

0 投票
3 回答
4189 浏览

regex - Ruby 1.9 正则表达式 Lookbehind Assertion & Anchors

Ruby 1.9 正则表达式支持后向断言,但在模式中传递锚点时我似乎遇到了困难。当在前瞻断言中传递锚点时,它运行得很好。

有谁知道如何使锚点在后向断言中像在前瞻中一样工作?

向后看是否需要特殊的转义序列或分组?

我已经在 1.9.1-p243、p376 和 1.9.2-preview3 中测试了这种行为,以防它被修补。

0 投票
1 回答
2445 浏览

c# - 执行 Assert.AreMatch() 以深入比较两个对象中的属性

我正在针对我们的缓存机制编写测试,我想确保进入缓存的内容与出来的内容相同,即所有属性都匹配。这是我希望它如何工作的虚构示例

对每个属性执行 Assert.AreEqual 是不可行的,因为其中会有很多这样的测试,每个测试都有很多属性。

哇,谢谢乔恩。我想你在一分钟内回答了这个问题。这是我为任何感兴趣的各方提供的解决方案。我按照 Jon 的建议(我认为)实现了,但是我在数组属性方面遇到了一些麻烦,因此我的解决方案只处理整数数组(我目前需要的所有)。

如果我尝试检查不止一个级别,它也必须是一个相当滑的斜坡。我确信这可以实现,但出于我的目的,这不是必需的。

上述方法可用于以下情况

0 投票
2 回答
45737 浏览

c++ - 如何通过 Google 测试捕捉断言?

我正在使用 Google 测试框架编写一些单元测试。但我想检查一些断言是否放置得当并且有用。有没有办法在 Google 测试中捕获断言?

正在测试的示例代码:

然后是测试:

EXPECT_ANY_THROW没有捕捉到断言,而只有例外。我正在寻找捕获断言的解决方案。

0 投票
4 回答
86250 浏览

python - 如何更改 Python AssertionError 中的消息?

我正在按照以下内容编写,在比较两个多行 Unicode 文本块时,我尝试生成一个体面的错误消息。进行比较的内部方法提出了一个断言,但默认解释对我来说没用

我需要在代码中添加一些内容,如下所示:

我无法弄清楚如何在我捕获的 assertionerror 中更改打印的错误消息。我总是得到AssertionError: u'something' != 'something else',它只显示输出的第一行。

如何更改断言消息以打印出我想要的任何内容?

如果它是相关的,我正在使用它nose来运行测试。

0 投票
1 回答
224 浏览

c# - 这两个单元测试断言有什么区别?

遇到以下 MS 单元测试:

在进行断言时,我从未见过泛型的使用。

这就是我写断言的方式:

有什么不同?

当我将鼠标悬停在AreNotEqual()我正在使用的重载上时,该方法正在使用比较两个双精度的重载(不确定为什么没有 int、int 重载)。

如果我确实输入了 in的通用类型参数<int>,ReSharper 说它是多余的。

所以我的问题是:如果我这样做的方式仍然是类型安全的,为什么要使用泛型断言?