######ssh:Junit遇到initializationError(知识点:Junit测试3要素:public、void、无参)==解决:检查所有方法的注解。是否添加正确

先参考:http://blog.csdn.net/baidu_37107022/article/details/73658343

比较新的17年解决。

思路很清晰。总结【检查思路】:

copy:


原因可能如下:

1.有返回值的方法不能直接测试

2.带参数的方法不能直接测试

3.访问权限在public一下的方法不能直接测试

4.static静态方法不能直接测试

5.不能给出现前四个条件中任意一个的方法添加@Test注解,否则执行满足@Test条件的方法也会出现initializationerror初始化异常


只有public void 的方法可以使用@Test测试

要点一:必须为public,以下均不行
要点二:必须为void,没有返回值,没有任何修饰final,static...
要点三:必须无参,Junit错误。====不熟练。很容易忘。不报错,不熟 挺难找

许多博客说,可能是导包问题: 
除了引入junit-4.12.jar之外,还要引入2个依赖jar包:hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar

(备注:经过个人测试,一般都不会是这个问题。)


=====我的错误:

######【ssh整合环境:一个错误,全都错误。】===导致一时找不到到底是哪个方法错了。===有没有junit.jar 效果一样。eclipse自带Junit。


====错的Test方法(但是不报错)必须删掉。否则还是不行!!!



代码:

package cn.itcast.crm.service.impl;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.crm.dao.CustomerDao;
import cn.itcast.crm.domain.Customer;
import cn.itcast.crm.service.CustomerService;

@Service//还没加事务。
@Transactional(readOnly=false)
//------
@RunWith(SpringJUnit4ClassRunner.class)//==###=service 测试事务。
@ContextConfiguration("classpath:applicationContext.xml")//只有Spring的注解和配置文件才会用到classpath
public class CustomerServiceImpl implements CustomerService {
	
	@Autowired
	CustomerDao cd;
	
	//@Test===注解。
	//出错原因:这里,不符合@Test3要素的方法,加了@Test。不报错。
	//导致其他正确的@Test方法无法执行:报错:Junit InitializationError
	//===困扰很久。######【出现这个问题:唯一方法:检查所有方法的注解是否添加正确!】
	@Test
	public List<Customer> findAll() {
		List<Customer> list = cd.findAll();
		System.out.println(list);
		return null;
	}
	
	@Test
	public void findAllTest() {//===dao没问题。service就报错:Junit:initializationError
		List<Customer> list = cd.findAll();
		System.out.println(list);
	}

	@Override
	public void save(Customer customer) {
		cd.save(customer);
	}
	
	@Test
	public void saveTest() {//没加事务,
		Customer customer=new Customer();
		customer.setCustName("testSave");
		customer.setCustPhone("111");
		cd.save(customer);
	}

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值