SpringBoot adiciona teste de unidade junit + biblioteca de classes de teste Spring Boot

A primeira parte, SpringBoot adiciona teste de unidade junit

SpringBoot é muito simples de usar junit, vamos dar uma olhada, em primeiro lugar, aqui está a versão do springboot2.0.4

Um arquivo. Pom.xml para abrir o pacote de teste do springboot

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

2. Crie uma classe de teste

1. Para teste de arquivo único, basta adicionar a anotação @Test, conforme mostrado na figura:

Entrada SpringBoot dez, adicione teste de unidade junit

2. Chamada de formulário MVC

Classe de teste, é necessário adicionar duas anotações

 @RunWith(SpringRunner.class)
 @SpringBootTest(classes={App.class})

Onde App.class é a principal classe de entrada do programa, ou seja, a classe de inicialização do springboot

package com.qfx.test;

import org.junit.Test;
import org.junit.runner.RunWith;
importar org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
importar org.springframework.test.context.junit4.SpringRunner;

import com.qfx.system.App;
importar com.qfx.system.service.SysUserService;

@RunWith (SpringRunner.class)
@SpringBootTest (classes = {App.class}) classe
pública JunitTest {

<span class="hljs-meta">@Autowired</span>
SysUserService sysUserService;

<span class="hljs-meta">@Test</span>
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">printSysUserInfo</span><span class="hljs-params">()</span></span>{
    String userStr = sysUserService.getSysUserAll();
    System.out.println(userStr);
}

}

Ao testar, o springboot será iniciado por meio do App.class, vamos dar uma olhada no efeito, conforme mostrado na figura:

Entrada SpringBoot dez, adicione teste de unidade junit

Quanto aos testes de controlador pode iniciar diretamente o projeto, para enviar o pedido para testar o navegador, se você realmente quer teste de uso junit você pode usar para MockMvc ser

A primeira parte do exposto acima vem de: https://blog.51cto.com/1197822/2316932

A segunda parte, biblioteca de teste do Spring Boot

O Spring Boot fornece muitas ferramentas e anotações práticas para ajudar a testar o aplicativo, incluindo principalmente os dois módulos a seguir.

  • spring-boot-test: conteúdo principal que suporta testes.

  • spring-boot-test-autoconfigure: suporta configuração automatizada de testes.

Desenvolvido para uso, desde que spring-boot-starter-testo iniciador pode ser introduzido nos módulos de teste Primavera de inicialização, mas também introduzir alguns gostam JUnit, AssertJ, Hamcreste outras bibliotecas úteis, como mostrado abaixo.

  • JUnit: uma biblioteca de classes padrão para teste de unidade de aplicativo Java.
  • Teste de primavera e teste de inicialização da primavera: Suporte de teste integrado para as funções do aplicativo Spring Boot.
  • AssertJ: uma biblioteca de asserções leve.
  • Hamcrest: Uma biblioteca de correspondência de objetos.
  • Mockito: Uma estrutura de teste do Java Mock, pagamento padrão 1.x, pode ser modificada para 2.x.
  • JSONassert: uma biblioteca de asserções para JSON.
  • JsonPath: uma biblioteca de classes de operação JSON.

A seguir, é apresentado o diagrama de dependência do Maven.

Essas são algumas das bibliotecas de teste mais usadas, fornecidas pelo Spring Boot. Se as opções acima não atenderem às suas necessidades, você também poderá adicionar outras bibliotecas que não estão disponíveis acima.

Teste o aplicativo Spring Boot

Adicionar dependência do Maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>1.5.10.RELEASE</version>
    <scope>test</scope>
</dependency>

1. Para transformar uma classe comum em uma classe de teste de unidade, basta adicionar @SpringBootTest e @RunWith (SpringRunner.class) duas anotações ao nome da classe.

2. Adicione a anotação @Test ao método de teste.

Se o teste precisar fazer uma chamada REST, você pode @Autowire um TestRestTemplate.

@RunWith(SpringRunner.class)
@SpringBootTest
public class BBTestAA {

@Autowired
private TestRestTemplate testRestTemplate;

@Test
void public testDemo () {

}

Teste de solicitação GET

@Test
public void get() throws Exception {
    Map<String,String> multiValueMap = new HashMap<>();
    multiValueMap.put("username","Java技术栈");
    ActResult result = testRestTemplate.getForObject("/test/getUser?username={username}",ActResult.class,multiValueMap);
    Assert.assertEquals(result.getCode(),0);
}

Teste de solicitação POST

@Test
public void post() throws Exception {
    MultiValueMap multiValueMap = new LinkedMultiValueMap();
    multiValueMap.add("username","Java技术栈");
    ActResult result = testRestTemplate.postForObject("/test/post",multiValueMap,ActResult.class);
    Assert.assertEquals(result.getCode(),0);
}

Teste de upload de arquivo

@Test
public void upload() throws Exception {
    Resource resource = new FileSystemResource("/home/javastack/test.jar");
    MultiValueMap multiValueMap = new LinkedMultiValueMap();
    multiValueMap.add("username","Java技术栈");
    multiValueMap.add("files",resource);
    ActResult result = testRestTemplate.postForObject("/test/upload",multiValueMap,ActResult.class);
    Assert.assertEquals(result.getCode(),0);
}

Teste de download de arquivo

@Test
public void download() throws Exception {
    HttpHeaders headers = new HttpHeaders();
    headers.set("token","javastack");
    HttpEntity formEntity = new HttpEntity(headers);
    String[] urlVariables = new String[]{"admin"};
    ResponseEntity<byte[]> response = testRestTemplate.exchange("/test/download?username={1}",HttpMethod.GET,formEntity,byte[].class,urlVariables);
    if (response.getStatusCode() == HttpStatus.OK) {
        Files.write(response.getBody(),new File("/home/javastack/test.jar"));
    }
}
A segunda parte do exposto acima vem de: https://www.cnblogs.com/javastack/p/9150408.html
Publicado 65 artigos originais · Gosto 16 · Visita 10.000+

Acho que você gosta

Origin blog.csdn.net/s_156/article/details/105446542
Recomendado
Clasificación