assert相关内容

什么是“断言"?功能?

我一直在学习 OpenCV 教程并遇到了 assert 函数;它有什么作用? 解决方案 assert 将终止程序(通常带有引用 assert 语句的消息)如果它的参数结果为假.常用于调试时,使程序在出现意外情况时更明显地失败. 例如: assert(length >= 0);//如果长度为负,则死亡. 如果失败,您还可以添加信息更丰富的消息,如下所示: assert(lengt ..
发布时间:2021-11-30 11:19:41 C/C++开发

如何检查对象是列表还是元组(但不是字符串)?

为了确定输入是 list/tuple 而不是 str,我通常会这样做.因为很多时候我偶然发现了一个错误,其中一个函数错误地传递了一个 str 对象,并且目标函数执行 for x in lst 假设 lst实际上是一个 list 或 tuple. assert isinstance(lst, (list, tuple)) 我的问题是:有没有更好的方法来实现这一目标? 解决方案 仅在 py ..
发布时间:2021-11-30 11:19:30 Python

如何在 Eclipse 程序中启用 Java 关键字断言?

如何在 Eclipse 中启用 assert 关键字? 公共类A{公共静态无效主(字符串...参数){System.out.println(1);断言错误;System.out.println(2);}} 解决方案 具体来说: 转到运行->运行配置 在左侧导航面板中选择 java 应用程序. 右键单击并选择新建. 选择参数标签 在 VM 参数中添加 -ea. ..
发布时间:2021-11-30 11:19:21 Java开发

PHPUnit 断言抛出异常?

有谁知道有没有assert之类的东西可以测试被测代码是否抛出异常? 解决方案 expectException(InvalidArgumentException::class);//或者对于 PHPUnit setExpectedException(InvalidArgumentException::class);//...然后添加生成异常的测试代码示例方法($anInvalidArgume ..
发布时间:2021-11-30 11:19:11 PHP

在 Python 中禁用断言

如何在 Python 中禁用断言? 也就是说,如果断言失败,我不希望它抛出一个AssertionError,而是继续下去. 我该怎么做? 解决方案 如何在 Python 中禁用断言? 有多种方法会影响单个进程、环境或一行代码. 我展示了每一个. 对于整个过程 使用 -O 标志(大写 O)禁用进程中的所有断言语句. 例如: $ python - ..

在 C 中构建时断言表达式的方法

我正在整理一些旧代码,这些代码到处使用“幻数"来设置硬件寄存器,我想使用常量而不是这些数字来使代码更具表现力(实际上它们会映射用于记录寄存器的名称/值). 但是,我担心随着更改量的增加,我可能会打破魔幻数字.下面是一个简化的例子(寄存器组更复杂): const short mode0 = 0;const 短模式 1 = 1;const short mode2 = 2;const short ..
发布时间:2021-11-30 11:18:56 其他开发

我可以在 Android 设备上使用断言吗?

我想使用断言 关键字在我的 android 应用程序中在某些情况下在模拟器或我的设备上在测试期间破坏我的应用程序.这可能吗? 看来模拟器只是忽略了我的断言. 解决方案 API 提供了 JUnit 断言. 你可以这样做 import static junit.framework.Assert.*; 现在您可以使用junit框架中提供的所有函数,如assertTrue、asse ..
发布时间:2021-11-30 11:18:41 移动开发

断言什么时候应该留在生产代码中?

有一个 讨论在 comp.lang.c++.moderated 继续讨论关于断言(在 C++ 中默认情况下仅存在于调试版本中)是否应该保留在生产代码中. 显然,每个项目都是独一无二的,所以我的问题是不是那么多是否应该保留断言,但是在哪些情况下这个值得推荐/不是一个好主意. 断言,我的意思是: 用于测试条件的运行时检查,如果该条件为假,则揭示软件中的错误. 停止程序的机制(可能是 ..
发布时间:2021-11-30 11:18:29 其他开发

使用断言或异常按合同进行设计?

当通过契约编程一个函数或方法时,首先检查它的先决条件是否满足,然后再开始处理它的职责,对吗?进行这些检查的两种最突出的方法是通过 assert 和通过 exception. assert 仅在调试模式下失败.确保(单元)测试所有单独的合同先决条件以查看它们是否真的失败至关重要. 异常在调试和发布模式下失败.这样做的好处是经过测试的调试行为与发布行为相同,但会导致运行时性能下降. 你认 ..
发布时间:2021-11-30 11:18:20 其他开发

C中的静态断言

在 C(不是 C++)中实现编译时静态断言的最佳方法是什么,特别强调 GCC? 解决方案 C11 标准添加了 _Static_assert 关键字. 这是自 gcc-4.6 开始实施: _Static_assert (0, "assert1");/* { dg-error "静态断言失败:\"assert1\"" } */ 第一个槽需要是一个整数常量表达式.第二个槽是一个可以很长 ..
发布时间:2021-11-30 11:18:09 其他开发

“断言"有什么用?在 Python 中?

我一直在阅读一些源代码,并在几个地方看到了assert 的用法. 具体是什么意思?它的用途是什么? 解决方案 assert 语句几乎存在于所有编程语言中.它有助于在您的程序早期发现问题,因为它的原因很明确,而不是在其他操作失败时发现问题. 当你... 断言条件 ...您告诉程序测试该条件,如果条件为假,则立即触发错误. 在 Python 中,大致相当于: 如果不是条 ..
发布时间:2021-11-30 11:17:59 Python

当我的程序崩溃时如何自动生成堆栈跟踪

我正在使用 GCC 编译器在 Linux 上工作.当我的 C++ 程序崩溃时,我希望它自动生成堆栈跟踪. 我的程序由许多不同的用户运行,它也可以在 Linux、Windows 和 Macintosh 上运行(所有版本都使用 gcc 编译). 我希望我的程序能够在崩溃时生成堆栈跟踪,下次用户运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我 ..
发布时间:2021-11-30 11:17:48 C/C++开发

在 ABAP 中使用自定义消息引发异常

我正在编写一个通过 RFC 调用的函数,我想找到在 ABAP 中使用自定义消息引发异常的最简单方法.如果可以在一行中尽可能短地完成此操作,那就太好了. 我想要这个用于调试,而不是用于运行生产代码. 背景: 过去我使用 Python 编程语言.我喜欢在没有调试器的情况下进行调试.我在代码中加入了一些 assert 0, myvar 行并执行代码.对我来说,这感觉比传统调试器更快,而 ..
发布时间:2021-11-26 15:42:02 其他开发

“断言"是什么意思?关键字呢?

assert 有什么作用?例如在函数中: private static int charAt(String s, int d) {断言 d >= 0 &&d 解决方案 如果您使用 -enableassertions(或简称 -ea)启动程序,则此声明 assert cond; 相当于 if (!cond)抛出新的断言错误(); 如果您在没有此选项的情况下启动程序,则断言语句将无效. ..
发布时间:2021-11-25 21:05:21 Java开发

如何对记录器中的消息进行 JUnit 断言

我有一些被测代码调用 Java 记录器来报告其状态.在 JUnit 测试代码中,我想验证此记录器中是否创建了正确的日志条目.大致如下: methodUnderTest(bool x){如果(x)logger.info("x 发生了")}@Test 测试员(){//也许先设置一个记录器.methodUnderTest(true);assertXXXXXX(loggedLevel(),Level.I ..
发布时间:2021-11-25 18:03:43 Java开发

在 ABAP 中使用自定义消息引发异常

我正在编写一个通过 RFC 调用的函数,我想找到在 ABAP 中使用自定义消息引发异常的最简单方法.如果可以在一行中尽可能短地完成此操作,那就太好了. 我想要这个用于调试,而不是用于运行生产代码. 背景: 过去我使用 Python 编程语言.我喜欢在没有调试器的情况下进行调试.我在代码中加入了一些 assert 0, myvar 行并执行代码.对我来说,这感觉比传统调试器更快,而 ..
发布时间:2021-11-25 08:18:09 C#

可靠地确定数组中的元素数量

每个 C 程序员都可以使用这个众所周知的宏来确定数组中元素的数量: #define NUM_ELEMS(a) (sizeof(a)/sizeof 0[a]) 这是一个典型的用例: int numbers[] = {2, 3, 5, 7, 11, 13, 17, 19};printf("%lu\n", NUM_ELEMS(numbers));//8,正如预期的那样 然而,没有什么能阻止程序员 ..
发布时间:2021-11-18 02:45:18 其他开发