Back to Repositories

Testing MyBatis Multiple Datasource Operations in spring-boot-examples

This test suite demonstrates MyBatis annotation-based multiple datasource integration with Spring Boot, focusing on User entity operations. It validates CRUD operations using a dedicated mapper for the first datasource configuration.

Test Coverage Overview

The test suite provides comprehensive coverage of User entity persistence operations through MyBatis annotations.
  • Insert operations with multiple user records
  • Query functionality for retrieving user lists
  • Update operations with verification
  • Basic data integrity validation

Implementation Analysis

The testing approach utilizes Spring Boot’s test framework with JUnit 4 integration.
  • Leverages @SpringBootTest for context loading
  • Uses @RunWith(SpringRunner.class) for Spring test execution
  • Implements @Autowired for dependency injection
  • Employs Assert statements for validation

Technical Details

Testing infrastructure components include:
  • JUnit 4 testing framework
  • Spring Boot Test context
  • MyBatis annotation-based mapper
  • Custom UserEntity with enum support
  • Automated assertion verification

Best Practices Demonstrated

The test suite exemplifies several testing best practices:
  • Isolated test methods for specific functionality
  • Clear test method naming conventions
  • Proper use of assertions for validation
  • Comprehensive CRUD operation coverage
  • Structured test organization with Spring Boot conventions

ityouknow/spring-boot-examples

1.x/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 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.entity.UserEntity;
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 UserEntity("aa", "a123456", UserSexEnum.MAN));
		userMapper.insert(new UserEntity("bb", "b123456", UserSexEnum.WOMAN));
		userMapper.insert(new UserEntity("cc", "b123456", UserSexEnum.WOMAN));

		Assert.assertEquals(3, userMapper.getAll().size());
	}

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

}