Spring -单元测试

提示:

使用Junit进行单元测试

文章目录

  • 一、原生Junit
    • 1.
  • 二、Spring整合Junit
    • 1.导入Spring整合Junit的jar
    • 2.使用Junit提供的注解@Runwith把Junit原来集成的main替换成Spring提供的main。
    • 3. 告知Spring-test的运行器:Spring的IoC创建是基于xml还是注解,并说明配置的位置。
  • 总结



一、原生Junit

1.

使用Junit需要在pom中指定依赖:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</scope>
</dependency>

在测试类中,添加测试方法。

Junit单元测试时,不需要编写main方法,但junit并不是没有main方法,而是junit集成了一个main方法。

junit的main方法会判断当前测试类中哪些方法带有@Test注解,让带有@Test注解的方法执行。

public class AccountTest {

    private ApplicationContext ac;
    private IAccountService as;

    @Before
    public void init() {
        ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);
        as = ac.getBean("accountService", IAccountService.class);
    }

    @Test
    public void testFindAll(){
        as.findAllAccount().forEach(System.out::println);
    }

    @Test
    public void testFindOne(){
        System.out.println(as.findAccountById("01"));
    }

    @Test
    public void testSave(){
        Account account = new Account();
        account.setId("04");
        account.setName("赵六");
        account.setMoney(200);
        as.saveAccount(account);
    }

    @Test
    public void testUpdate(){
        Account account = as.findAccountById("01");
        account.setMoney(500);
        as.updateAccount(account);
    }

    @Test
    public void testDelete(){
        as.deleteAccount("04");
    }
}

二、Spring整合Junit

:当使用Spring-test 5.x的时候,要求Junit的版本在4.12及以上

1.导入Spring整合Junit的jar

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.0.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

2.使用Junit提供的注解@Runwith把Junit原来集成的main替换成Spring提供的main。

3. 告知Spring-test的运行器:Spring的IoC创建是基于xml还是注解,并说明配置的位置。

. @ContextConfiguration注解属性:
○ locations:xml配置时使用。指定xml文件位置(加上classpath关键字表示在类路径下)。
○ classes:注解配置时使用。指定注解类所在位置。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountTest {

    @Autowired
    private IAccountService as;

    @Test
    public void testFindAll(){
        as.findAllAccount().forEach(System.out::println);
    }

    @Test
    public void testDelete(){
        as.deleteAccount("04");
    }
}

总结

你可能感兴趣的:(Spring全家桶,单元测试,spring,junit)