繁体   English   中英

在 Java 中对 REST 处理程序类进行单元测试

[英]Unit Testing a REST handler class in Java

我正在尝试为下面的课程编写测试用例,这给了我各种不同尝试的各种异常。 任何人都可以建议我如何编写可以为我提供良好覆盖面的测试类

我正在测试的班级是-

 @RestController
 @RefreshScope
 public class BookResource {

    private final AtomicLong counter = new AtomicLong();

    @Autowired
    Environment environment;

    private Logger logger = MyLoggerFactory.getLogger(getClass());

    @Autowired
    private BookRepository bookRepository;

    @Value("${magazine.costPerBook:100}")
    private String costPerTon;

    @PostMapping( value= "v1/books",produces = MediaType.APPLICATION_JSON_VALUE,consumes = MediaType.APPLICATION_JSON_VALUE)
    public Book createBook(@RequestBody Book book){
        logger.info("received request to create a book. Current Market rate is {}",costPerBook);
        bookRepository.save(book);
        return book;
    }
    
    @GetMapping(value= "v1/books/{id}" , produces = MediaType.APPLICATION_JSON_VALUE)
    public Book getBook(@PathVariable long id){
            logger.info("Received request to read book {}", id);

        Book book = bookRepository.findById(id);
        return book;
    }
    
    @GetMapping(value= "v1/books" , produces = MediaType.APPLICATION_JSON_VALUE)
    public Books getBooks(){
        logger.info("Received request to read all books {}",costPerBook);

        if (bookRepository.count() == 0 ){
            logger.info("No objects found , adding sample objects for demonstration");
            List<Book> books = new ArrayList<Book>();
            books.add(new Book("atlantis"));
            bookRepository.saveAll(books);
        }

        // Retrieve from repository
        Iterable<Book> booksIterator = bookRepository.findAll();
        Books books = new Books();
        books.setBooks(booksIterator);
        return books;
    }

}

我正在尝试为下面的课程编写测试用例,这给了我各种不同尝试的各种异常。 任何人都可以建议我如何编写可以为我提供良好覆盖面的测试类

我正在测试的班级是-

 @RestController
 @RefreshScope
 public class BookResource {

    private final AtomicLong counter = new AtomicLong();

    @Autowired
    Environment environment;

    private Logger logger = MyLoggerFactory.getLogger(getClass());

    @Autowired
    private BookRepository bookRepository;

    @Value("${magazine.costPerBook:100}")
    private String costPerTon;

    @PostMapping( value= "v1/books",produces = MediaType.APPLICATION_JSON_VALUE,consumes = MediaType.APPLICATION_JSON_VALUE)
    public Book createBook(@RequestBody Book book){
        logger.info("received request to create a book. Current Market rate is {}",costPerBook);
        bookRepository.save(book);
        return book;
    }
    
    @GetMapping(value= "v1/books/{id}" , produces = MediaType.APPLICATION_JSON_VALUE)
    public Book getBook(@PathVariable long id){
            logger.info("Received request to read book {}", id);

        Book book = bookRepository.findById(id);
        return book;
    }
    
    @GetMapping(value= "v1/books" , produces = MediaType.APPLICATION_JSON_VALUE)
    public Books getBooks(){
        logger.info("Received request to read all books {}",costPerBook);

        if (bookRepository.count() == 0 ){
            logger.info("No objects found , adding sample objects for demonstration");
            List<Book> books = new ArrayList<Book>();
            books.add(new Book("atlantis"));
            bookRepository.saveAll(books);
        }

        // Retrieve from repository
        Iterable<Book> booksIterator = bookRepository.findAll();
        Books books = new Books();
        books.setBooks(booksIterator);
        return books;
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM