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;
}
}
我已经对getBookById
和getBookByCategory
进行了两次测试,现在我正在尝试测试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) 个答案