Back to Repositories

Testing Multi-Datasource MyBatis Mapper Implementation in spring-boot-examples

This test suite validates User2Mapper functionality in a multi-datasource Spring Boot application using MyBatis annotations. It covers essential CRUD operations and data persistence verification across different database contexts.

Test Coverage Overview

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

Key areas tested include:
  • User insertion with validation of count
  • Query operations for user retrieval
  • Update operations with assertion of changes
  • Integration with UserSexEnum for gender specification

Implementation Analysis

The testing approach utilizes Spring Boot’s test framework with JUnit integration. It employs @SpringBootTest for full application context loading and @RunWith(SpringRunner.class) for Spring test execution.

Notable patterns include:
  • Autowired dependency injection for mapper access
  • Assertion-based verification
  • Systematic CRUD operation testing

Technical Details

Testing infrastructure includes:
  • JUnit 4 testing framework
  • Spring Boot Test context
  • MyBatis annotation-based mapping
  • Multiple datasource configuration
  • Assert utilities for validation

Best Practices Demonstrated

The test suite exhibits several testing best practices:

  • Isolated test methods for each operation
  • Clear test method naming conventions
  • Proper exception handling expectations
  • Comprehensive state verification
  • Structured test data setup

ityouknow/spring-boot-examples

2.x/spring-boot-mybatis/spring-boot-mybatis-annotation-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));

		Assert.assertEquals(3, 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 {
		User user = userMapper.getOne(6l);
		System.out.println(user.toString());
		user.setNickName("neo");
		userMapper.update(user);
		Assert.assertTrue(("neo".equals(userMapper.getOne(6l).getNickName())));
	}

}