Создание объекта Student для модульного теста
Я новичок в Java и мне нужна помощь. У меня есть служебный класс, который имеет два метода, где один метод преобразует строку Json в объект, а другой преобразует объект в строку Json
Я хотел проверить эти методы с помощью junit. Для этого теста мне понадобится объект конечно. Скажем, объект ученика с именем и StudentId.
У меня вопрос: есть ли способ получить этот объект в моем тесте, не создавая отдельный класс для ученика? Так как этот объект мне нужен только для тестирования.
3 ответа
Зачем создавать еще один ученический класс? Просто создайте объект Student в вашем тестовом классе junit (тесты должны быть отделены от кода, конечно). Это будет примерно так:
import org.junit.Before;
import org.junit.Test;
import org.junit.After;
public class StudentTest
{
private Student tester;
@Before
public void setUp() throws Exception
{
//init student objects
}
@Test
public void test()
{
//test logic
}
@After
public void cleanUp()
{
//destruct
}
}
см. документацию junit для объяснения логики тестирования, например, AssertNotNull. Если ваш класс не называется студентом, возьмите класс, который вы задали по своему вопросу (ваш вспомогательный класс?)
Я не уверен, что вы подразумеваете под отдельным классом здесь. Просто обратите внимание, что в Java вы можете определять различные типы вложенных классов. Здесь не помешает определить статический вложенный класс, как предлагает rohitvats.
Если вы не хотите создавать отдельный класс, вы можете просто создать статический класс-член в своем тестовом классе JUnit, как показано в примере ниже:
public class StaticMemberClassDemo {
public static void main(String[] args) {
Student student = new Student("John Doe", 1);
}
private static class Student {
private final String name;
private final int id;
public Student(String name, int id) {
this.name = name;
this.id = id;
}
}
}