单元测试方法:
1、必须被@Test注解修饰
2、返回值类型必须void
3、方法的参数列表不指定任何类型
4、方法的访问修饰符必须是public
@SpringBootTest:
表示当前类是一个测试类,不会随项目一块打包
@RunWith(SpringRunner.class):
表示启动这个单元测试类,需要传递一个参数,必须是SpringRunner的实例类型
@ExceptionHandler(ServiceException.class)
请求处理方法,这个方法的返回值就是需要传递给前端的数据
自动将异常对象传递给此方法的参数列表上
当前项目中产生了异常,被统一拦截到此方法中,这个方法此时就是充当请求处理方法,方法的返回值直接给到前端
@Param注解:
@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。
注意点:
-
当使用了@Param注解来声明参数的时候,SQL语句取值使用#{},${}取值都可以。
-
当不使用@Param注解声明参数的时候,必须使用的是#{}来取参数。使用${}方式取值会报错。
-
不使用@Param注解时,参数只能有一个,并且是Javabean。在SQL语句里可以引用JavaBean的属性,而且只能引用JavaBean的属性。
MultipartFile接口
MultipartFile是springmvc的接口,这个接口为我们包装了获取文件类型的数据(任何类型的file文件),因为springboot整合了mvc,所以只需要在处理请求的方法参数列表上声明一个参数类型为MultipartFile的参数,然后springboot自动将传递给服务器的文件数据赋值给这个参数
@RequestParam
@RequestParam:表示请求的参数,将请求的参数注入请求处理方法的某个参数上,如果名称不一致则可以使用 @RequestParam注解进行标记和映射
package com.cy.store.mapper;
import com.cy.store.entity.User;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Repository;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest//表示当前类是一个测试类,不会随项目一块打包
//@RunWith(SpringRunner.class)//表示启动这个单元测试类,需要传递一个参数,必须是SpringRunner的实例类型
public class UserMapperTests {
//idea有检测功能,接口是不能够直接创建Bean的
@Autowired
private Usermapper usermapper;
@Test
/*
* 单元测试方法:
* 1、必须被@Test注解修饰
2、返回值类型必须void
3、方法的参数列表不指定任何类型
4、方法的访问修饰符必须是public
* */
public void insert(){
User user = new User();
user.setUsername("tim");
user.setPassword("1234");
Integer rows = usermapper.insert(user);
System.out.println(rows);
}
}