spring 项目测试用例

本文详细介绍了如何使用 SpringTxTestCase 进行单元测试,包括继承类、配置上下文、测试方法及执行顺序等关键步骤。通过示例展示了如何针对方法的返回值和 void 方法进行测试,并解释了 @Rollback 注解的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:这是springside单元测试的一个例子的详细页面
写单元测试:
1、要继承SpringTxTestCase ;
2、要有ContextConfiguration,location是applicationContext-test.xml的地址;
如@ContextConfiguration(locations = [ "classpath:/springtest/applicationContext.xml", "classpath:/springtest/dataSource-config.xml"])
3、@Test,如果方法有返回值还好说,如果方法是void的,比如save方法,可以针对查询来测试。如果没有把rollback=false,则在方法执行完之前,没有回滚,可以获得存储的数据;如果为false,则存入数据库。
4、SpringTxTestCase 继承了AbstractTransactionalJUnit4SpringContextTests继承了AbstractJUnit4SpringContextTests,反正某一个类里面设置了回滚,不需要手动设置了。

 

 

@ContextConfiguration(locations = { “/applicationContext-test.xml” })
public class LampDataLogManagerTest extends SpringTxTestCase {

@Autowired
private UserManageruserManager;

@Before
public void loadDefaultData() throws Exception {
}

@AfterClass
public static void cleanDefaultData() throws Exception {
}

@Test
// 如果你需要真正插入数据库,将Rollback设为false
// @Rollback(false)
public void testSaveLightInfoReport() {
User u = new User();
u.serLoginname(“user”);
userManager.save(u);
}
}

 

 

==========================================================

JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍:

@BeforeClass:针对所有测试,只执行一次,且必须为static void

@Before:初始化方法

@Test:测试方法,在这里可以测试期望异常和超时时间

@After:释放资源

@AfterClass:针对所有测试,只执行一次,且必须为static void

@Ignore:忽略的测试方法

 

一个单元测试用例执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

### 关于Spring Boot测试用例的示例与教程 #### 1. Spring Boot测试的基础概念 Spring Boot 提供了一套强大的工具来支持单元测试和集成测试。这些功能可以通过 `@SpringBootTest` 和其他相关注解实现[^2]。 #### 2. 集成测试的简单示例 以下是一个典型的基于JUnit 4框架的Spring Boot服务层测试案例: ```java 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 static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; @RunWith(SpringRunner.class) @SpringBootTest public class LearnServiceTest { @Autowired private LearnService learnService; @Test public void getLearn() { LearnResource learnResource = learnService.selectByKey(1001L); assertThat(learnResource.getAuthor(), is("測試")); } } ``` 上述代码展示了如何通过 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 来加载Spring应用上下文并进行测试[^3]。 #### 3. 单元测试的最佳实践 对于更复杂的场景,可以使用Mockito模拟依赖项的行为。以下是另一个例子: ```java import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.when; import static org.junit.jupiter.api.Assertions.assertEquals; class UserServiceTest { @InjectMocks private UserService userService; @Mock private UserRepository userRepository; @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); } @Test void testFindUserById() { User user = new User(); user.setId(1L); user.setName("John Doe"); when(userRepository.findById(anyLong())).thenReturn(java.util.Optional.of(user)); assertEquals("John Doe", userService.findUserById(1L).getName()); } } ``` 此代码片段演示了如何利用Mockito库创建独立的服务层测试环境。 #### 4. Maven配置注意事项 如果遇到Maven构建失败或者Java版本不兼容的问题,可以根据具体需求调整pom.xml文件中的插件设置。例如,在某些情况下可能需要指定编译器版本或排除冲突依赖项[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值