assert

关于断言(Assert)

假装没事ソ 提交于 2020-04-04 21:34:59
  断言,字面上的意思大致是十分肯定的说,也就是说我们相信这个结果是真的.如果我们的断言不为真,那这个这个结果就和我们预期的结果不一样.在编程上同理,如果程序运行出来的结果和你想要的结果不一致,那你的程序里面的这个方法或者函数就达不到你想要的需求,也就是说这个程序是有一些问题的.这是网上关于断言的一些解释. 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些 布尔表达式 ,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。   其实我感觉,断言就像是一个if语句,如果结果和你的预期一样,那么OK,结果为真继续运行.如果结果和预期不符,那么程序会抛出一个系统级错误(不是异常),并且终止程序运行.例如下面这个单元测试. 1 public void AddTest() 2 { 3 int a = 20; 4 int b = 20; 5 6 Assert.AreEqual(Program.Add(a,b),40); 7 } 这是对一个加法方法的测试,我们分别给两个数a,b赋值并作为参数传递到方法Add(int num1,num2)中,Line 6 中的语句就是设置的断言,在这里我断言Add的返回值和40相等,运行测试

断言(ASSERT)的用法

馋奶兔 提交于 2020-04-04 21:34:13
摘自:Moondark http://www.cnblogs.com/moondark/archive/2012/03/12/2392315.html 断言(ASSERT)的用法   我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。   在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句: if(假设成立){ 程序正常运行;}else{ 报错&&终止程序!(避免由程序运行引起更大的错误) }   但是这样写的话,就会有无数个if语句,甚至会出现,一个if语句的括号从文件头到文件尾,并且大多数情况下,我们要进行验证的假设,只是属于偶然性事件,又或者我们仅仅想测试一下,一些最坏情况是否发生,所以这里有了assert().    assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行. 1 #include "assert.h" 2 void assert( int expression );   assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。

Python——assert(断言函数)

随声附和 提交于 2020-04-04 21:25:55
一、断言函数的作用   python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 二、常用格式   assert 1==1   assert 2+2==2*2   assert len(['my boy',12])<10   assert range(4)==[0,1,2,3] 三、如何为assert断言语句添加异常参数   assert 表达式 [, 参数]   assert len(lists) >=5,'列表元素个数小于5' 来源: https://www.cnblogs.com/cxys85/p/10206959.html

Jmeter之Bean shell使用(一)

流过昼夜 提交于 2020-03-31 08:32:19
说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/p/4949889.html 来源: http://blog.csdn.net/silencemylove/article/details/51373873 一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网: http://www.BeanShell.org/ 二、Jmeter有哪些Bean Shell 定时器:  BeanShell Timer 前置处理器:BeanShell PreProcessor 采样器:  BeanShell Sampler 后置处理器:BeanShell PostProcessor 断言:   BeanShell断言 监听器:  BeanShell Listener 三

训练自己的数据遇到的问题

拥有回忆 提交于 2020-03-29 17:15:11
先按VOC数据集做好了自己的数据集。 1. 训练faster rcnn时出现如下报错: File "/py-faster-rcnn/tools/../lib/datasets/imdb.py", line 108, in append_flipped_images assert (boxes[:, 2] >= boxes[:, 0]).all() AssertionError编了代码查找标签坐标,发现确实存在坐标为0的情况,说明标签生成是0-base(以0为基准)。 标准的VOC2007 的矩形标注坐标是以1为基准的(1-based),而在处理图像坐标都是0起始的(0-based)。 所以在faster rcnn源码中才要对从xml文件中读取的xmin,ymin,xmax,ymax 统统减1将坐标变为我们做数据处理时所需要的0-based坐标。 如果Xmin为0,减一后变为65535。 (不推荐修改源码)我把xml文件中的xmin,ymin,xmax,ymax全部+1处理。 # py-faster-rcnn/lib/datasets/pascal_voc.py (line 207) # Make pixel indexes 0-based x1 = float(bbox.find('xmin').text) - 1 y1 = float(bbox.find('ymin').text

springboot 集成单元测试

谁都会走 提交于 2020-03-28 20:20:49
官网参考地址 1. 添加依赖 <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 添加完依赖以后如果POM文件中报错,类型 Failure to transfer org.hamcrest:hamcrest-core:jar:1.3 .... was chached in the local repository 这是说在本地有缓存,把本地repository里对应的包删除掉,然后右键项目->maven->update project,报哪个包的错就删掉那个包。 造成这个错误的原因是对应的包下存在有 .lastupdated文件,删掉这些文件就可以。 stackoverflow 上有类似解决办法。 2.简单JAVA测试 在方法上加@Test注解,run as Junit即可 package UtilitiesTest; import org.junit.Assert; import org.junit.Test; public class SimpleJavaTest { @Test public void EquelTest(){

正则表达式

自闭症网瘾萝莉.ら 提交于 2020-03-27 17:57:17
正则表达式 英文为 Regular expression ,简称: regex 或 regexp 。 含义:按照某种规则去匹配符合条件的字符串 正则表达式由两种基本字符类型构成: 原义文本字符 元字符 元字符是在正则表达式中有特殊含义的非字母字符: * + ? ^ $ . | \ () {} [] 等 常用字符集 : \t :水平制表符 \v :垂直制表符 \n :换行符 \r :回车符 \0 :空字符 \f :换页符 | :或 字符类 : 由元字符 [] 创建。字符类取反:由 ^ 创建,反向类, [^123] 表示不是字符 1 或 2 或 3 的内容 范围类 : [a-z] :来连接两个字符表示从 a 到 z 的任意字符 预定义类 : . : [^\r\n] ,除了回车符和换行符之外的所有字符 \d : [0-9] ,数字字符 \D : [^0-9] ,非数字字符 \s : [\t\n\x0B\f\r] ,空白符 \S : [^\t\n\x0B\f\r] ,非空白符 \w : [a-zA-Z0-9_] ,单词字符(字母、数字、下划线) \W : [^a-zA-Z0-9_] ,非单词字符 边界 : ^ :开始标记,以 xx 开始 $ :结束标记,以 xx 结束 \b :单词边界 \B :非单词边界 量词 : ? :出现 0 次或 1 次 + :出现 1 次或多个 * :出现 0

关于C语言的assert(断言)

☆樱花仙子☆ 提交于 2020-03-27 14:58:41
3 月,跳不动了?>>> 1、assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。 2、使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下: #include <stdio.h> #define NDEBUG #include <assert.h> 3、一些建议: 3.1、使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。 3.2、在函数的入口处,使用断言检查参数的有效性(合法性)。 3.3、在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。 3.4、一般教科书都鼓励程序员们进行防错设计,但要记住这种编程风格可能会隐瞒错误。当进行防错设计时,如果“不可能发生”的事情的确发生了

java单元测试(使用junit)

放肆的年华 提交于 2020-03-21 23:38:29
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。 1、概述   Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。   Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。   由于Junit相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败,修改实现代码,再运行测试,直到测试成功。以后对代码的修改和优化,运行测试成功,则修改成功。   Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式时,通过对ant的配置,可以很简单地实现测试自动化。   对不同性质的被测对象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧,以后慢慢地分别讲叙。以下以Class测试为例讲解,除非特殊说明。 2、下载安装 去Junit主页下载最新版本3.8.1程序包junit