Мой первый метод прост, его просто toString
который выводит 3 класса конкретных полей
public String toString(){
return String.format("%s/%s/%s",street,city,postcode);
}
В JUnit это дает мне возможность сформировать тесты, я не уверен, как это сделать эффективно.
@Test
public void testToString() {
System.out.println("toString");
Address instance = null;
String expResult = "";
String result = instance.toString();
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype.");
}
Я провел много исследований по JUnit и понял концепцию тестирования, но не могу понять, как это сделать с моим кодом. Также как бы я мог эффективно протестировать этот метод, это метод в подклассе, который является абстрактным методом в родительском классе
@Override
int getDiscountRate() {
return this.companyDiscount;
}
Это дает мне возможность проверить
@Test
public void testGetDiscountRate() {
System.out.println("getDiscountRate");
BusinessOrganisationDetails instance = null;
int expResult = 0;
int result = instance.getDiscountRate();
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype.");
}
Это выглядит хорошо. Конечно, вам нужно инициализировать переменные экземпляра, иначе это приведет к исключению NullPointerException.
Здесь, как это могло бы выглядеть в конце:
@Test
public void testToString() {
System.out.println("toString");
Address instance = new Address();
instance.setStreet("Somestreet");
instance.setCity("Somecity");
instance.setPostcode("12345");
String expResult = "SomestreetSomecity12345";
String result = instance.toString();
assertEquals(expResult, result);
}
И другой тест:
@Test
public void testGetDiscountRate() {
System.out.println("getDiscountRate");
BusinessOrganisationDetails instance = new BusinessOrganisationDetails();
instance.setCompanyDiscount(50);
int expResult = 50;
int result = instance.getDiscountRate();
assertEquals(expResult, result);
}