Я новичок в тестировании JUnit и интересуюсь, как это работает. В настоящее время я пытаюсь пройти единичный тест.Java JUnit Тестирование по методу
Метод испытания
@Test
public void ensure_equals_method_is_properly_coded()
{
assertTrue(employees.get(0).equals(employees.get(2)));
assertFalse(employees.get(0).equals(employees.get(1)));
assertFalse(employees.get(0).equals(employees.get(3)));
}
У меня есть ArrayList уже заселенный со значениями в нем. Насколько я понимаю, я должен написать метод, называемый equals(), чтобы этот тест прошел для моей задачи. Мой вопрос в том, как этот метод найдет метод для тестирования. Я создал метод equals() в классе под названием «Лица», но я не знаю, если его даже вызывают, когда я запускаю тест.
Мой второй вопрос ставит под вопрос логику в методе equal(). Пока у меня это есть.
public boolean equals() {
if (employees.get(0).equals(employees.get(2)))
return true;
return false;
}
Это должно возвращать true, потому что первый тестовый элемент утверждает, что это правда. Правильно ли моя логика?
только для ясности здесь мой полный класс испытаний все уже существует.
public class Tests
{
List<Person> employees = new ArrayList<Person>();
@Before
public void init()
{
Person anEmployee = new Employee();
anEmployee.setName("Trevor Page");
anEmployee.setSex("Male");
Calendar cal = Calendar.getInstance();
cal.set(1983, 0, 1);
anEmployee.setBirthday(cal.getTime());
((Employee)anEmployee).setJobTitle("Sr. Software Engineer");
((Employee)anEmployee).setOrganization(new Google("Google"));
employees.add(anEmployee);
anEmployee = new Employee();
anEmployee.setName("Jane Doe");
anEmployee.setSex("Female");
anEmployee.setBirthday(cal.getTime());
((Employee)anEmployee).setJobTitle("Sr. Software Engineer");
((Employee)anEmployee).setOrganization(new Google("Google"));
employees.add(anEmployee);
anEmployee = new Employee();
anEmployee.setName("Trevor Page");
anEmployee.setSex("Male");
anEmployee.setBirthday(cal.getTime());
((Employee)anEmployee).setJobTitle("Sr. Software Engineer");
((Employee)anEmployee).setOrganization(new Google("Google"));
employees.add(anEmployee);
anEmployee = new Employee();
anEmployee.setName("Trevor Page");
anEmployee.setSex("Male");
anEmployee.setBirthday(cal.getTime());
((Employee)anEmployee).setJobTitle("Sr. Software Engineer");
((Employee)anEmployee).setOrganization(new Microsoft("Microsoft"));
employees.add(anEmployee);
}
@Test
public void ensure_toString_method_is_properly_coded()
{
String message = "Name: Trevor Page, Sex: Male" +
"\nJob Title: Sr. Software Engineer, Organization: Google";
assertThat(employees.get(0).toString(), is(message));
}
@Test
public void ensure_equals_method_is_properly_coded()
{
assertTrue(employees.get(0).equals(employees.get(2)));
assertFalse(employees.get(0).equals(employees.get(1)));
assertFalse(employees.get(0).equals(employees.get(3)));
}
Вот мой полный класс лиц, который является абстрактным. У меня уже есть первый тестовый пример.
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public abstract class Person
{
public abstract String getName();
public abstract String getSex();
public abstract void setName(String name);
public abstract void setSex(String sex);
public abstract void setBirthday(Date birthdate);
public abstract Date getBirthday();
public abstract String getJobTitle();
public abstract String getNameOfOrganization();
List<Person> employees = new ArrayList<Person>();
@Override
public String toString() {
return "Name: " + getName() + ", Sex: " + getSex() + "\n" + "Job Title: " + getJobTitle() + ", Organization: " + getNameOfOrganization() ;
}
}
У меня есть другой класс под названием Employee, который расширяет этот абстрактный класс.
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Employee extends Person
{
List<String> employees = new ArrayList<String>();
@Override
public String getName() {
employees.add("Trevor Page");
return employees.get(0);
}
@Override
public String getSex() {
employees.add("Male");
return employees.get(1);
}
@Override
public void setName(String name) {
// TODO Auto-generated method stub
}
@Override
public void setSex(String sex) {
// TODO Auto-generated method stub
}
@Override
public void setBirthday(Date birthdate) {
// TODO Auto-generated method stub
}
@Override
public Date getBirthday() {
// TODO Auto-generated method stub
return null;
}
public void setJobTitle(String string) {
// TODO Auto-generated method stub
}
public String getJobTitle() {
employees.add("Sr. Software Engineer");
return employees.get(2);
}
public void setOrganization(Google google) {
// TODO Auto-generated method stub
}
public void setOrganization(Microsoft microsoft) {
// TODO Auto-generated method stub
}
@Override
public String getNameOfOrganization() {
employees.add("Google");
return employees.get(3);
}
}
Я смог получить первый тест, чтобы работать удачей. Я не уверен, как тестирует модуль, чтобы проверить мои значения.
Непонятно, где вы программировали этот метод equals? –
на абстрактный класс с именем Лицо. –
и где определена переменная, называемая «служащие»? –