Back to Repositories

Testing Multi-Datasource MyBatis User Operations in spring-boot-examples

This test suite validates the User2Mapper functionality in a multi-datasource Spring Boot MyBatis application. It covers essential CRUD operations for user management, demonstrating proper integration between Spring Boot and MyBatis XML configurations.

Test Coverage Overview

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

  • Insert operations with different user types and sex enums
  • Query operations for retrieving single and multiple user records
  • Update operations with validation of modified fields
  • Null checks and basic error handling scenarios

Implementation Analysis

The testing approach utilizes Spring Boot’s test framework with JUnit integration.

Key patterns include:
  • SpringRunner for test execution context
  • Autowired dependency injection for mapper access
  • Assertion-based validation for data consistency
  • Enum handling for user sex classification

Technical Details

  • Spring Boot Test Context framework
  • JUnit 4 testing framework
  • MyBatis XML-based mapper configuration
  • Multiple datasource setup
  • Spring Runner for test execution
  • Assert utilities for validation

Best Practices Demonstrated

The test suite exemplifies several testing best practices in Spring Boot applications.

  • Proper test method isolation
  • Clear test method naming conventions
  • Comprehensive CRUD operation coverage
  • Effective use of Spring Boot test annotations
  • Structured data verification approaches

ityouknow/spring-boot-examples

spring-boot-mybatis/spring-boot-mybatis-xml-mulidatasource/src/test/java/com/neo/mapper/User2MapperTest.java

            
package com.neo.mapper;

import com.neo.model.User;
import com.neo.enums.UserSexEnum;
import com.neo.mapper.test2.User2Mapper;
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 java.util.List;

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

	@Autowired
	private User2Mapper 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));

		System.out.println(userMapper.getAll().size());
	}

	@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.toString());
		}
	}
	
	
	@Test
	public void testUpdate() throws Exception {
		Long id =30l;
		User user = userMapper.getOne(id);
		System.out.println(user.toString());
		user.setNickName("neo");
		userMapper.update(user);
		Assert.assertTrue(("neo".equals(userMapper.getOne(id).getNickName())));
	}

}