Back to Repositories

Testing MyBatis Annotation-Based User Mapping in spring-boot-examples

This test suite validates the User1Mapper functionality in a Spring Boot application with multiple datasources using MyBatis annotations. It covers essential CRUD operations including user insertion, querying, and updates with comprehensive validation.

Test Coverage Overview

The test suite provides comprehensive coverage of User entity operations through MyBatis annotations.

Key areas tested include:
  • User insertion with different gender enums
  • Bulk user retrieval and null checking
  • Single user updates with assertion validation
  • Integration with Spring Boot’s test context

Implementation Analysis

The testing approach utilizes Spring Boot’s test framework with JUnit 4 integration. It implements @RunWith(SpringRunner.class) and @SpringBootTest annotations for proper Spring context loading.

Notable patterns include:
  • Dependency injection of mapper interfaces
  • Enum-based gender classification
  • Transaction-safe test execution

Technical Details

Testing infrastructure includes:
  • JUnit 4 testing framework
  • Spring Boot Test context
  • MyBatis annotation-based mapping
  • Multiple datasource configuration
  • Spring Runner for test execution
  • Autowired component injection

Best Practices Demonstrated

The test suite exemplifies several testing best practices:

  • Isolated test methods for specific functionality
  • Proper assertion usage for validation
  • Clear test method naming conventions
  • Comprehensive CRUD operation coverage
  • Proper Spring Boot test configuration

ityouknow/spring-boot-examples

spring-boot-mybatis/spring-boot-mybatis-annotation-mulidatasource/src/test/java/com/neo/mapper/User1MapperTest.java

            
package com.neo.mapper;

import java.util.List;

import com.neo.mapper.test1.User1Mapper;
import com.neo.model.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.neo.enums.UserSexEnum;

@RunWith(SpringRunner.class)
@SpringBootTest
public class User1MapperTest {

	@Autowired
	private User1Mapper userMapper;

	@Test
	public void testInsert() throws Exception {
		userMapper.insert(new User("aa", "a123456", UserSexEnum.MAN));
		userMapper.insert(new User("bb", "b123456", UserSexEnum.WOMAN));
		userMapper.insert(new User("cc", "b123456", UserSexEnum.WOMAN));

	}

	@Test
	public void testQuery() throws Exception {
		List<User> users = userMapper.getAll();
		if(users==null || users.size()==0){
			System.out.println("is null");
		}else{
			System.out.println(users.size());
		}
	}
	
	
	@Test
	public void testUpdate() throws Exception {
		User user = userMapper.getOne(30l);
		System.out.println(user.toString());
		user.setNickName("neo");
		userMapper.update(user);
		Assert.assertTrue(("neo".equals(userMapper.getOne(30l).getNickName())));
	}

}