簡體   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