Back to Repositories

Testing MyBatis Annotation-based User Operations in spring-boot-examples

This test suite validates the UserMapper functionality in a Spring Boot application with MyBatis annotations. It covers essential CRUD operations for user management, ensuring proper database interactions and data persistence.

Test Coverage Overview

The test suite provides comprehensive coverage of UserMapper operations including:
  • User insertion with validation of count
  • User query operations and list retrieval
  • User update functionality with verification
Key integration points include MyBatis annotation-based mapping and Spring Boot context initialization.

Implementation Analysis

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

The implementation demonstrates proper dependency injection with @Autowired and systematic test organization for each CRUD operation.

Technical Details

Testing tools and configuration:
  • JUnit 4 test framework
  • Spring Boot Test context
  • MyBatis annotation-based mapping
  • Spring Runner for test execution
  • Assert statements for verification

Best Practices Demonstrated

The test suite exemplifies several testing best practices:
  • Isolated test methods for each operation
  • Proper assertion usage for validation
  • Clear test method naming conventions
  • Spring Boot test configuration best practices
  • Effective use of dependency injection in tests

ityouknow/spring-boot-examples

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

            
package com.neo.mapper;

import java.util.List;

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 UserMapperTest {

	@Autowired
	private UserMapper userMapper;

	@Test
	public void testInsert() throws Exception {
		userMapper.insert(new User("aa1", "a123456", UserSexEnum.MAN));
		userMapper.insert(new User("bb1", "b123456", UserSexEnum.WOMAN));
		userMapper.insert(new User("cc1", "b123456", UserSexEnum.WOMAN));

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

	@Test
	public void testQuery() throws Exception {
		List<User> users = userMapper.getAll();
		System.out.println(users.toString());
	}
	
	
	@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())));
	}

}