Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Unit тестове на Spring MVC приложение

Featured Replies

От скоро започнах да се занимавам с тестове и за целта си направих малко уеб приложение, за да пробвам да напиша няколко теста. Тестовете минават, но не знам дали съм ги направил правилно и като цяло има ли смисъл от въпросните тестове. Ще копирам кода, за да събера мнения.

 

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext.xml" })
@WebAppConfiguration
@RequestMapping("books")
public class BookControllerTest {

	@Mock
	private BookService bookService;

	@InjectMocks
	private BookController bookController;

	private MockMvc mockMvc;

	@Before
	public void before() {
		MockitoAnnotations.initMocks(this);
		this.mockMvc = MockMvcBuilders.standaloneSetup(bookController).build();
	}

	@Test
	public void testGetAllBooks() {
		Book book1 = new Book("4", "Book", "Book", 55);
		Book book2 = new Book("7", "Book2", "Book2", 59);

		when(bookService.getAllBooks()).thenReturn(Arrays.asList(book1, book2));
	}

	@Test
	public void testGetProductByIdPositive() {
		Book book = new Book("3", "book", "book", 5253);
		String id = book.getId();
		assertNotNull("Object can not have null id ", id);
		Assertions.assertThat(book).isNotNull();
		assertTrue("Found book id should be equal to id being searched", book.getId().equals("3"));
	}

	@Test(expected = AssertionError.class)
	public void testGetProductByIdNegative() {
		Book book = new Book("3", "book", "book", 5253);
		String id = book.getId();
		assertNotNull("Object can not have null id ", id);
		Assertions.assertThat(book).isNotNull();
		assertTrue("Found book id should be equal to id being searched", book.getId().equals(3));
	}

	@Test
	public void testGetProductsByCategoryPositive() {
		Book book = new Book();
		book.setCategory("algorithms");
		String category = book.getCategory();
		assertNotNull("Object can not have null id ", category);
		Assertions.assertThat(book).isNotNull();
		assertTrue("Found book id should be equal to id being searched", book.getCategory().equals("algorithms"));
	}

	@Test(expected = AssertionError.class)
	public void testGetProductsByCategoryNegative() {
		Book book = new Book();
		book.setCategory("algorithms");
		String category = book.getCategory();
		assertNotNull("Object can not have null id ", category);
		Assertions.assertThat(book).isNotNull();
		assertTrue("Found book id should be equal to id being searched", book.getCategory().equals(2));
	}

}

От тук надолу ще копирам кода, който съм тествал.

@Controller
@RequestMapping("books")
public class BookController {

	@Autowired
	BookService bookService;

	@RequestMapping("/all")
	public String getAllbooks(Model model) {
		model.addAttribute("allBooks", bookService.getAllBooks());
		return "books";
	}

@RequestMapping("{category}")
	public String getProductsByCategory(Model model, @PathVariable("category") String productCategory) {
		model.addAttribute("allBooks", bookService.getBookByCategory(productCategory));
		return "books";
	}

@RequestMapping("/product")
	public String getProductById(@RequestParam("id") String productId, Model model) {
		model.addAttribute("allBooks", bookService.getBookById(productId));
		return "book";
	}

public interface BookService {

	List<Book> getAllBooks();

	Book getBookById(String productID);

	List<Book> getBookByCategory(String category);
}

@Repository
public class InMemoryBookRepository implements BookRepository {

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

	public InMemoryBookRepository() {
		Book java = new Book("1", "Java", "java", 44);
		java.setDescription("Some algorithms");
		java.setCondition("Available");
		java.setUnitsInStock(4);
		java.setCategory("algorithms");
		java.setManufacturer("some manufacturer");
		listOfProducts.add(java);
		Book java2 = new Book("2", "Java2", "java2", 5352);
		java2.setDescription("Programming concepts");
		java2.setCondition("Available");
		java2.setUnitsInStock(100);
		java2.setCategory("first steps in programming");
		java2.setManufacturer("some manufacturer");
		listOfProducts.add(java2);
	}

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

	@Override
	public Book getBookById(String bookId) {
		Book bookById = null;
		for (Book book : listOfProducts) {
			if (book != null && book.getId() != null && book.getId().equals(bookId)) {
				bookById = book;
				break;
			}
		}
		if (bookId == null) {
			throw new IllegalArgumentException("No products found with the product id: " + bookId);
		}
		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;
	}

}

 

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    26%
    Дарени 256.00 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.