junit4.9测试用例
测试基类
- import org.junit.runner.RunWith;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- @RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
- @ContextConfiguration
- ({"/*.xml"}) //加载配置文件
- //------------如果加入以下代码,所有继承该类的测试类都会遵循该配置,也可以不加,在测试类的方法上控制事务,参见下一个实例
- @Transactional 这个非常关键,如果不加入这个注解配置,事务控制就会完全失效!
- //
- //这里的事务关联到配置文件中的事务控制器(transactionManager = "transactionManager"),同时//指定自动回滚(defaultRollback = true)。这样做操作的数据才不会污染数据库!
- //@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
- //------------
- public class BaseJunit4Test {
- <span style="white-space:pre"> </span>...
- }
关于事务的配置文件点这里
子类
- public class UserServiceTest extends BaseJunit4Test {
- @Resource //自动注入,默认按名称
- private IUserService userServiceImpl;
- @Test
- public void hasMatchUser() throws Exception {
- boolean b1 = userServiceImpl.hasMatchUser("admin", "123456");
- boolean b2 = userServiceImpl.hasMatchUser("admin", "111111");
- Assert.assertTrue(b1);
- Assert.assertTrue(!b2);
- }
- @Test
- public void getUserByName() throws Exception {
- User user1 = userServiceImpl.getUserByName("admin");
- User user2 = userServiceImpl.getUserByName("admin2");
- Assert.assertNotNull(user1);
- Assert.assertNull(user2);
- }
- @Test
- <strong>@Transactional //标明此方法需使用事务
- <span style="white-space:pre"> </span>@Rollback(true) //标明使用完此方法后事务不回滚,true时为回滚</strong>
- public void loginSuccess() throws Exception {
- User user1 = userServiceImpl.getUserByName("admin");
- userServiceImpl.loginSuccess(user1);
- }
- }