有人能帮我测试一下junit服务、控制器和存储库吗。在为服务和控制器类编写测试用例时,我遇到了很多错误。
这是我的服务班
import com.controller.ValidatorClass;
import com.model.Entity;
import com.model.Status;
import com.repository.Repository;
@Service
public class Service {
@Autowired
private Repository repository;
@Autowired
private SequenceGeneratorService service;
public ResponseEntity storeInDb(ExecutorEntity model) {
ValidatorClass validation = new ValidatorClass();
Map<String, String> objValidate = validation.getInput(model.getLink(), model.getUsername(),
model.getPassword(), model.getSolution());
model.setId(service.getSequenceNumber(Entity.SEQUENCE_NAME));
model.setStatus(Status.READY);
repository.save(model);
return new ResponseEntity(model, HttpStatus.OK);
}
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public List<String> handleValidationExceptions(MethodArgumentNotValidException ex) {
return ex.getBindingResult()
.getAllErrors().stream()
.map(ObjectError::getDefaultMessage)
.collect(Collectors.toList());
}
}
这是我的控制器类
@RestController
@RequestMapping(value = "/create")
public class Controller {
@Autowired
private Service service;
@RequestMapping(value = "/create", method = RequestMethod.POST)
public ResponseEntity code(@Valid @RequestBody Entity model) {
return service.storeInDb(model);
}
我的模型课
@Transient
public static final String SEQUENCE_NAME = "user_sequence";
@NotNull(message = "Name can not be Null")
private String username;
@NotNull(message = "Password can not be Null")
private String password;
@NotNull(message = "Jenkins Link can not be Null")
private String Link;
@NotNull(message = "Solution can not be Null")
private String solution;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private Status status; //enum class having READY and FAIL as values.
还有那些能手和二传手。
1条答案
按热度按时间lmvvr0a81#
junit是一个广泛的主题,您应该仔细阅读:https://junit.org/junit5/
请注意JUnit5是当前版本(我看到您已经用
junit4
).我将给你一个关于如何编写一些集成测试的想法,只是为了让你开始。你可能会遇到
TestRestTemplate
在你的智慧之旅,但现在建议使用WebTestClient
.下面的测试将启动并运行应用程序的所有部分。当您越来越有经验时,您可能还会测试应用程序的各个部分。
依赖于
spring-boot-starter-test
,则无需向junit添加显式依赖项。为了使用
WebTestClient
,将以下内容添加到pom中: