springboot中使用Junit,mapper对象出现null问题
1.测试类添加注解@RunWith(SpringRunner.class)、@SpringBootTest,测试方法添加注解@Test@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringBootTestJunitTest {@Testpublic void test() {System.out.print("test");}}
·
首先,框架中要引入测试包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
1.测试类添加注解@RunWith(SpringRunner.class)、@SpringBootTest,测试方法添加注解@Test
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootTestJunitTest {
@Test
public void test() {
System.out.print("test");
}
}
2.测试方法中使用@Autowired注解调用mapper
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootTestJunitTest {
@Autowired
private TestMapper testMapper;
@Test
public void test() {
System.out.print("test");
testMapper.test();
}
}
直接在serviceImpl中测试已经写好的方法
@RunWith(SpringRunner.class)
@SpringBootTest
@Service("springBootTestJunitTestService")
public class SpringBootTestJunitTestImpl implements SpringBootTestJunitTestService {
@Autowired
private TestMapper testMapper;
@Test
public void test() {
//直接使用this调用本类中方法
String userName = this.getUserName(3);
System.out.print(userName);
//不能通过创建类对象的方式调用,否则会出现testMapper对象为null问题
// SpringBootTestJunitTestImpl testImplObj = new SpringBootTestJunitTestImpl();
// String userName = testImplObj.getUserName(3);
}
@Override
public String getUserName(Integer userId){
User user = testMapper.getUserName(userId);
String userName = user.getUserName();
return userName;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)