有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring框架服务单元测试

我有两门课,我正在做一些单元测试

   @Service
    public class BookServiceImpl implements BookService {

        @Autowired
        private BookRepository bookRepository;

        @Override
        public List<Book> getAllBooks() {
            return bookRepository.getAllBooks();
        }

        @Override
        public Book getBookById(int productID) {
            return bookRepository.getBookById(productID);
        }

        @Override
        public List<Book> getBookByCategory(String category) {
            return bookRepository.getBookByCategory(category);
        }

        @Override
        public Set<Book> getBooksByFilter(Map<String, List<String>> filterParams) {
            return bookRepository.getBooksByFilter(filterParams);
        }

    }

@Repository
@Configuration
public class InMemoryBookRepository implements BookRepository {

    private List<Book> listOfProducts = new ArrayList<Book>();

    public InMemoryBookRepository() {
        Book algorithms = new Book(1, "Book", "Book", 29);
        algorithms.setDescription("description.");
        algorithms.setCondition("Available");
        algorithms.setUnitsInStock(4);
        algorithms.setCategory("java");
        algorithms.setManufacturer("Nenov");
        listOfProducts.add(algorithms);
        Book book2 = new Book(2, "Thinking in Java", "Bruce Ekel", 5352);
        book2.setDescription("Description");
        book2.setCondition("Available");
        book2.setUnitsInStock(100);
        book2.setCategory("programming");
        book2.setManufacturer("Nikola");
        listOfProducts.add(book2);
    }

    @Override
    public List<Book> getAllBooks() {
        return listOfProducts;
    }

    @Override
    public Book getBookById(int bookId) {
        Book bookById = null;
        for (Book book : listOfProducts) {
            if (book != null && book.getId() != 0) {
                bookById = book;
                break;
            }
        }
        return bookById;
    }

    @Override
    public List<Book> getBookByCategory(String category) {
        List<Book> productsByCategory = new ArrayList<Book>();
        for (Book book : listOfProducts) {
            if (category.equalsIgnoreCase(book.getCategory())) {
                productsByCategory.add(book);
            }
        }
        return productsByCategory;
    }

    @Override
    public Set<Book> getBooksByFilter(Map<String, List<String>> filterParams) {
        Set<Book> productsByBrand = new HashSet<Book>();
        Set<Book> productsByCategory = new HashSet<Book>();
        Set<String> criterias = filterParams.keySet();
        if (criterias.contains("brand")) {
            for (String brandName : filterParams.get("brand")) {
                for (Book book : listOfProducts) {
                    if (brandName.equalsIgnoreCase(book.getManufacturer())) {
                        productsByBrand.add(book);
                    }
                }
            }
        }
        if (criterias.contains("category")) {
            for (String category : filterParams.get("category")) {
                productsByCategory.addAll(this.getBookByCategory(category));
            }
        }
        productsByCategory.retainAll(productsByBrand);
        return productsByCategory;
    }

}

我已经对getBookByIdgetBookByCategory进行了两次测试,现在我正在尝试测试getAllBooks(),但我不确定如何进行测试。 这是我写的代码。正确吗?如何完成

   @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration({ "applicationContext.xml" })
    public class BookServiceTest {

        @Autowired
        private BookRepository bookRepository;

        @Test
            public void testGetAllBooks() {
                List<Book> listOfProducts = new ArrayList<Book>();

                Book book1 = new Book(1, "Book1", "Book1", 29);
                Book book2 = new Book(2, "Book2", "Book2", 30);

                assertNotNull("Object can not have null id ", book1);
                assertNotNull("Object can not have null id ", book2);
                listOfProducts.add(book1);
                listOfProducts.add(book2);

                List<Book> allBooks = bookRepository.getAllBooks();
                Assertions.assertThat(allBooks).isNotNull();
            }
}

共 (0) 个答案