assert相关内容

自定义 C++ 断言宏

我偶然发现了一篇内容丰富的文章:http://cnicholson.net/2009/02/stupid-c-tr​​icks-adventures-in-assert/它指出了我当前的调试宏套件中存在的大量问题. 如果您点击链接,将在文章末尾附近提供宏最终版本的完整代码. 呈现的一般形式是这样的(如果我转错了,请有人纠正我): #ifdef DEBUG#define 断言(cond ..
发布时间:2021-11-30 11:25:31 C/C++开发

添加消息断言

你好! 我正在寻找一种将自定义消息添加到断言语句的方法.我发现了这个问题在断言中添加自定义消息?但消息在那里是静态的.我想做这样的事情: assert((0 当断言失败时,我想要正常输出加上例如“x 是 100". 解决方案 你在这里走运了.最好的方法是定义自己的 assert 宏. 基本上,它可以是这样的: #ifndef NDEBUG# 定义断言(条件,消息)\做 ..
发布时间:2021-11-30 11:25:23 C/C++开发

raise、try 和 assert 之间有什么区别?

我已经学习 Python 一段时间了,raise 函数和 assert 是(我意识到它们都会使应用程序崩溃,不像 try - 除了)非常相似,我看不到您会在 try 上使用 raise 或 assert 的情况. 那么,raise、try 和 assert 有什么区别? 解决方案 Assert: 当你想“停止"时使用基于特定条件的脚本并返回一些东西以帮助更​​快地调试: li ..
发布时间:2021-11-30 11:25:14 Python

C# - Assert() 方法有什么作用?它还有用吗?

我正在使用断点进行调试并且我实现了断言调用?我以为它只用于单元测试.除了断点,它还能做什么?既然可以断点,那为什么要用Assert呢? 解决方案 在调试编译中,Assert 接受一个布尔条件作为参数,如果条件为假则显示错误对话框.如果条件为真,则程序继续进行而不会中断. 如果在Release中编译,所有Debug.Assert 会自动排除. ..
发布时间:2021-11-30 11:25:03 C#/.NET

为什么 JUnit 不提供 assertNotEquals 方法?

有人知道为什么 JUnit 4 提供 assertEquals(foo,bar) 而不是 assertNotEqual(foo,bar) 方法吗? 它提供了assertNotSame(对应于assertSame)和assertFalse(对应于assertTrue),所以看起来奇怪的是,他们没有打扰包括 assertNotEqual. 顺便说一下,我知道 JUnit 插件提供了我正在寻 ..
发布时间:2021-11-30 11:24:53 Java开发

assertEquals(obj,obj) 返回失败的测试

嗯,我有一个货币对象,它允许我向其中添加其他货币对象.我在 java 中尝试了 assertEquals() 来测试我的代码是否正常,但它失败了. 我非常肯定我的代码是正确的(System.out.println 返回正确答案),我想我只是在错误中使用了 assertEquals方式.T_T 如果我想知道 myObj1 == myObj2 是否用于测试,我到底使用什么? ** 在我的 ..
发布时间:2021-11-30 11:24:47 Java开发

Android NDK assert.h 问题

第一个 - 是 NDEBUG 以某种方式默认已经定义的,所以断言在你 #undef 之前不起作用.第二个 - 他们确实有效,但我没有收到 DDMS 的登录信息. 如果有一些android特定的assert.h? 还是我做错了什么? 解决方案 如果你想用断言编译你的代码,那么你可以通过三种方式来做到: 在 ndk-build 命令行中使用 NDK_DEBUG=1 参数 将 ..
发布时间:2021-11-30 11:24:38 移动开发

如何在 CMake Release 模式下启用断言?

CMake 被用来编译一些 C++ 文件.代码中有 assert 调用.这些调用在 CMake 的 Release 模式下被禁用.我猜它在发布模式下定义了 NDEBUG. 如果我有兴趣在 CMake 的 Release 模式下使用断言,我该如何启用它? 解决方案 1 如果您只对自己代码中的 assert 功能感兴趣,那么简单的一种解决方案是提供自定义断言.例如: #if (M ..
发布时间:2021-11-30 11:24:30 其他开发

使用断言的一些(反)模式(Java 和其他)

最后,我有一个关于 Stack Overflow 的问题要问!:-) 主要目标是 Java,但我相信它主要是语言不可知的:如果您没有本机断言,您可以随时模拟它. 我在一家销售用 Java 编写的软件套件的公司工作.代码很旧,至少可以追溯到 Java 1.3,并且在某些地方,它显示...这是一个庞大的代码库,大约有 200 万行,所以我们不能一次全部重构它. 最近,我们将最新版本从 J ..
发布时间:2021-11-30 11:24:24 Java开发

std::assert 发生了什么

这个答案和大量重复表明我应该使用 #include 对于我从 C++ 代码中提取的 C 头文件,我应该用 std::* 调用它们. 我一直在这样做,但我注意到一个例外.std::assert 似乎没有被定义,即使我正确地#include . 这是怎么回事?这是实施疏忽,还是实际例外? 解决方案 assert 是一个宏,而不是一个函数.因此,它需要与普通的旧 asser ..
发布时间:2021-11-30 11:24:13 C/C++开发

闯入 iPhone 上的调试器

对于我的 iPhone 项目中的断言宏,我正在寻找一种以编程方式进入调试器的方法.在 Windows (MSVC++) 上,我可以为此使用 __debugbreak().调用此函数将停止我的程序,启动调试器,并显示调用 __debugbreak() 的行的调用堆栈. iPhone 有没有类似于 __debugbreak() 的东西?我试过 Debugger(),但这给了我一个链接器错误. ..
发布时间:2021-11-30 11:24:06 移动开发

Assert.AreEqual 失败,而它不应该

我有一个我无法解释的非常奇怪的行为. 我有以下课程: 公共类项目{公共虚拟 int Id { 获取;放;}公共虚拟字符串名称 { 获取;放;}} 还有一个返回 Project 对象的方法: public Project GetByName(string Name){使用 (ISession session = NHibernateHelper.OpenSession()){项目项目 = ..
发布时间:2021-11-30 11:23:56 C#/.NET

如何在不使用 abort() 的情况下 assert()?

如果我使用 assert() 并且断言失败,那么 assert() 将调用 abort(),突然结束正在运行的程序.在我的生产代码中我负担不起.有没有一种方法可以在运行时进行断言,同时能够捕获失败的断言,以便我有机会优雅地处理它们? 解决方案 是的,事实上有.您需要自己编写自定义断言函数,因为 C++ 的 assert() 正是 C​​ 的 assert(),带有 abort()"功能"捆 ..
发布时间:2021-11-30 11:23:46 C/C++开发

Assert.AreEqual 如何确定两个通用 IEnumerables 之间的相等性?

我有一个单元测试来检查一个方法是否返回正确的IEnumerable.该方法使用 yield return 构建可枚举.它是可枚举的类如下: enum TokenType{数字,命令,算术,}内部类令牌{公共 TokenType 类型 { 获取;放;}公共字符串文本 { 获取;放;}public static bool operator == (Token lh, Token rh) { retu ..
发布时间:2021-11-30 11:23:39 C#/.NET

python的设计:为什么断言是一个语句而不是一个函数?

在 Python 中,assert 是一个语句,而不是一个函数.这是一个深思熟虑的决定吗?让 assert 成为语句(和保留字)而不是函数有什么好处吗? 根据 docs,assert expression1, expression2 扩展为 如果 __debug__:如果不是表达式 1:引发断言错误(表达式 2) 文档还说“当在编译时请求优化时,当前的代码生成器不会发出断言语句的代码." ..
发布时间:2021-11-30 11:23:31 Python

如何在android中使用断言?

我想在 Android 设备上使用 assert obj != null : "object cannot be null".断言似乎不起作用,所以我在网上搜索并找到了这个本地解决方案: adb shell setprop debug.assert 1 它可以在我的本地机器上运行. 我想使用我的 Eclipse 项目运行这个命令(所以它会在源代码管理中).我该怎么做? 解决 ..
发布时间:2021-11-30 11:23:20 Java开发

如何在 C/C++ 中将断言放入发布版本

我只需要运行 ship build 并且我需要在 release build 中的某些条件下断言以查看问题是否已解决.我该怎么做? 解决方案 取消定义 NDEBUG 宏 - 您可以围绕要保留在构建中的断言在本地执行此操作: #undef NDEBUG#include //重新包含标题以更新 assert() 的定义 或者做任何你需要做的事情,这样你的构建过程就不会首先定义 NDEBUG ..
发布时间:2021-11-30 11:23:09 C/C++开发

在 Python 中断言变量类型的正确方法

在使用函数时,我希望确保变量的类型符合预期.怎么做才对? 下面是一个假函数的例子,它在继续其角色之前试图做到这一点: def my_print(begin, text, end):"""在较低的'begin'和'end'之间的UPPER中打印'text'"""对于 i in (begin, text, end):assert isinstance(i, str), "输入变量应该是字符串" ..
发布时间:2021-11-30 11:23:02 Python

“assert False"和“self.assertFalse"有什么优点或区别

我正在编写测试,我听到有人说要使用 self.assertFalse 而不是 断言错误.为什么会这样?有什么好处吗? 解决方案 assert False 抛出一个没有有用日志信息的异常.测试出错. self.assertFalse() 抛出测试失败异常,其中包含测试失败信息,如消息和测试名称. 错误 - 测试甚至无法运行 - 和失败 - 测试代码工作但产生错误答案之间存在差异. ..
发布时间:2021-11-30 11:22:52 Python

PHPUnit:断言两个数组相等,但元素的顺序不重要

当数组中元素的顺序不重要,甚至可能发生变化时,有什么好方法可以断言两个对象数组相等? 解决方案 最简洁的方法是使用新的断言方法扩展 phpunit.但是现在这里有一个更简单的方法的想法.未经测试的代码,请验证: 应用中的某处: /*** 判断两个关联数组是否相似** 两个数组必须具有相同的索引和相同的值* 不考虑键顺序** @param 数组 $a* @param 数组 $b* @ ..
发布时间:2021-11-30 11:22:44 PHP