junit补遗

本文详细介绍了Junit框架的基本概念、JUnit3.x与JUnit4.x的区别、异常捕获方式、基础断言、执行用例的框架以及注意事项,旨在帮助开发者高效地进行单元测试。
经过一个月的接口测试实践,加上同事整理的PPT,这里罗列一下,一些有关Junit的知识点。
 
Junit是什么?
JUnit是开放源代码项目,可按需要进行扩展。 
这个框架提供了许多 断言(assert)方法,允许你设置测试的规则,如:assertEquals()、assertNull()、assertNotSame()、assertTrue()等方法,一个测试用例包括了多个断言,当运行测试用例后,JUnit运行器会报告哪些断言没有通过,开发人员就可顺藤摸瓜搞个水落石出了。
 
而传统的测试方法需要将期望的结果用诸如 System.out.println()等语句将过程信息打印到控制台或日志中,由开发人员观察输出信息以判断是否正确,现在这种“观察”的工作由JUnit的那些assertXxx()方法自动完成。
 
junit3.x与junit4.x的区别?
1、JUnit3.x中测试必须继承TestCase,并且每个方法名必须以test开头。比如:testMethod1(),在JUnit4.x中不必继承TestCase,采用了注解的方式。只要在测试的方法上加上注解@Test即可,从而不必再遵循以前的一些显式约定和反射定位测试;在JUnit4.x中如果继承了TestCase,注解就不起作用了。
 
2、JUnit4引入了一个JUnit3中没有的新特性。任何用@BeforeClass 注释的方法都将在该类中的测试方法运行之前刚好运行一次,而任何用@AfterClass注释的方法都将在该类中的所有测试都运行之后刚好运行一次
——可以理解为类范围的 setUp() 和tearDown() 方法。
 
junit4.x捕获异常的方式?
 1、try …catch
testM()      
  {       
      try{      
             M(a,   b);      
     } catch (Exception   e){      
       //成功的捕捉了这个异常      
  }       
}      
 
2. @Test(expected=Exception.class)
 使用@Test标注的expected属性,
JUnit框架就能自动帮我们检测是否抛出了我们指定的异常。
如下所示: 
@Test(expected = ArithmeticException. class
          public  void divideByZero() { 
                    calculator.divide(0);    
}
 
 
JUnit 基础断言
             
  assertEquals(a,b)  a是否等于b
 assertSame(a,b) a,b是否引用同一个对象
 assertNull(a) a为空,a是一个对象
 assertNotNull(a) a不为空,a是一个对象
 assertTrue(a) a为真,a可以是一个条件判断语句
 assertFalse(b) b为假,b可以是一个条件判断语句
 
 
用Junit3.x执行用例的框架
TestCase实例被运行时,依照以下步骤运行:
    1.创建测试用例的实例。
    2.调用setUp()方法,执行一些初始化工作。
 3.运行testXxx()测试方法。
 4.调用tearDown()方法,执行销毁对象的工作。
 
这样我们只能一个一个用例的执行,介绍一个方法:
TestSuite对象将多个测试用例组装成到一个测试套件,则测试套件批量运行。
 
import org.junit.runners.Suite; 

import junit.framework.TestSuite; 

@RunWith(Suite. class)        
@Suite.SuiteClasses({            
PersonTest. class,         
PersonTest2. class,         
})        
public  class AllTest {        
}    
 
TestSuite处理测试用例时有5个规则,如下:
1  测试用例必须是公有类(Public)。
2  测试用例必须继承TestCase类。
3  测试用例的测试方法必须是公有的(Public)。
4  测试用例的测试方法必须被声明为void。
5  测试用例中测试方法的前置名词必须是test。
 
其中,1,3,4在junit4.x中也是需要的规则。
 
Junit写测试的注意要点:
1.   测试建立自己的工程,不要和开发代码混在一个工程里;
2.   测试用例和测试数据分离;
3.   测试类和测试方法应该有一致的命名方案;
     如在工作类名前加上test从而形成测试类名 
4.   确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试 ;
5.   确保测试用例的独立性,尽量减少测试用例之间的依赖;
6.   测试要尽可能地小,执行速度快。

本文出自 “菜鸟也要修炼技术” 博客,请务必保留此出处http://vicky001.blog.51cto.com/2004660/382373

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值