1)提供的接口数量不完全相同. assertEquals支持boolean,long,int等等java primitiveType变量.assertSame只支持Object. 2)比较的逻辑不同,结果可能不同.assertSame是对象直接比较.assertEquals能利用被比较对象提供的比较逻辑来进行比较.使得同样的条件下,两者的运行结果不一定相同.简单解释如下:assertEquals(Object A,  Object B) 的比较逻辑:如果 A,B都是Null,返回true.否则调…
junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类.1.assertTrue/False([String message,]boolean condition);    判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名. 2.fail([String message,]);    失败,可以有消息,也可以没有消息. 3.assertEquals([String message,]Object expected,Ob…
最近在做TWU关于TDD的作业,对JUnit中测试异常抛出的方法进行了一些学习和思考. 在进行单元测试的时候有的时候需要测试某一方法是否抛出了正确的异常.例如,我有一个方法,里面对一个List进行读取操作,可能会抛出IndexOutOfBoundsException,我希望在单元测试中通过测试保证该方法会正确的抛出正确类型的异常.总结起来这样的测试异常是否被正确抛出的方法有三种: 1. try…fail...catch… @Test public voidtestExceptionMessage…
在JUnit中@BeforeClass和@AfterClass标注的方法必须是static的:但是在TestNg中却没有这样的限制,这是为什么呢. 其实和他们两的运行机制有关. 在junit中: 每运行一个@Test方法,就会为该测试类新建一个新的实例.(所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢.) 有没有发现这有助于提高测试方法之间的独立性,因为每个@Test执行的时候,都新建了一个实例,这样的话,可以避免测试方法之间重…
junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类.1.assertTrue/False([String message,]boolean condition);    判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名.2.fail([String message,]);    失败,可以有消息,也可以没有消息.3.assertEquals([String message,]Object expected,Obje…
在junit4.12之后,Assert就过时了,提供了TestCase来取代: 同样在TestCase中原本比较常见的一些方法也已经取消了,例如:assertNotEquals.assertThat.assertArraysEquals. 自己写了一个MathUtil方法,代码很简单,就不贴了: package a_junit; import org.junit.Test; import junit.framework.Assert; import junit.framework.TestCas…
JUnit参数化测试的五个步骤:(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized.(2)为测试类声明几个变量,分别用于存放期望值和测试所用数据.(3)为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值.(4)为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方…
一:jdk API中关于两个方法的解释 1:getMethods(),该方法是获取本类以及父类或者父接口中所有的公共方法(public修饰符修饰的) 2:getDeclaredMethods(),该方法是获取本类中的所有方法,包括私有的(private.protected.默认以及public)的方法. 二:代码演示 1:定义父类ReflectionParent.java /** * */ package com.paic.reflection; /** * @author Administra…
Java注解((Annotation)的使用方法是@注解名 ,能通过简单的词语来实现一些功能.在junit中常用的注解有@Test.@Ignore.@BeforeClass.@AfterClass.@Before.@After.@Runwith.@Parameters   以下是相关的介绍和使用说明:   一.@Test   在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类.在junit4中,定义一个 测试方法变得简单很多,只需要在方法…
为什么多线程.junit 中无法使用spring 依赖注入? 这个问题,其实体现了,我们对spring已依赖太深,以至于不想自己写实例了. 那么到底是为什么在多线程和junit单元测试中不能使用依赖注入呢? 一.为什么多线程下spring的依赖注入失效了呢? 答:因为spring为了考虑安全性问题,在多线程情况下,不支持直接使用 @Resouce 注解方式进行直接的bean注入,那么也就是说,如果在多线程调用该注入实例化的变量时,将会报NullPointerException . 解决办法: 多…