Проверка действия Struts
Эй, люди. Я недавно проверял действия Struts 2. В одном из моих классов действий точный метод save должен иметь два идентификатора. Это идентификатор типа оценки и идентификатор курса. это то, что есть до сих пор.
@Test
public void testSave() {
Assessment assessment = new Assessment();
assessment.setAssessmentType(assessment.getAssessmentType());
assessment.setCourse(assessment.getCourse());
assessment.setAmount(2);
assessment.setDescription("A test Description");
assessment.setPercentage(20.0);
action.setAssessment(assessment);
action.save();
assertNotNull(action.getAssessment().getId());
}
вся помощь будет оценена.
Эй, извини, заглядывает, я учил, что задал вопрос. Но то, что я пытаюсь достичь, это проверить класс действий, который у меня есть для оценки. Например, если клиент использует приложение при добавлении оценки, идентификатор курса скрыт от пользователя, но для сохранения оценки он должен существовать. также, чтобы сохранить оценку, у них есть выбор типа оценки. поэтому, чтобы метод сохранения работал идеально, как идентификатор курса, так и тип оценки, он должен существовать.
Поэтому вопрос в том, что я не знаю, как тестировать и реализовывать идентификатор курса, а также идентификатор типа оценки.
Еще раз спасибо. вся помощь будет оценена
Метод сохранения действия описан ниже;
public String save(){
if (cancel != null) {
return "cancel";
}
boolean isNew = (assessment.getId() == null);
assessmentType.addAssessment(assessment);
course.addAssessment(assessment);
assessment = assessmentManager.save(assessment);
return "save";
}
1 ответ
При модульном тестировании кода необходимо начинать со спецификации для тестируемого метода. Давайте посмотрим на метод, который вы пытаетесь протестировать, и "угадайте", каковы спецификации.
- Если какая-то переменная отмены равна нулю, тогда выполнить метод, иначе немедленно вернуться
- объект оценки не может быть нулевым (в противном случае строка
boolean isNew = (assessment.getId() == null);
не удастся, и вы не проверяете на ноль). С другой стороны, эта строка, похоже, не служит какой-либо цели в вашем коде, поскольку вы нигде не используете isNew. - Оценка Type также не нулевая, то есть она должна существовать заранее
- курс не является нулевым или должен существовать заранее
- Оценка Manager не является нулевым
Это всего лишь догадки из вашего кода, так что я уверен, что у вас есть нечто большее.
Теперь вы хотите написать тест, который тестирует каждый из них по одному. Как правило, вы хотите, чтобы метод тестирования проверял только одну вещь. Некоторая дополнительная информация также отсутствует в описании, но давайте еще раз догадаемся.
В вашем классе действий struts2 вы устанавливаете объект отмены, validType, course и asessmentManager перед вызовом этого действия. Затем вам нужно установить все это в вашем тестовом методе, прежде чем вызывать действие.
Итак, для проверки первой точки вы хотите установить переменную отмены. Может быть так:
action.setCancel(Some Object);
action.save();
//now test the result condition to see if it behaved as expected.
Затем для проверки второго пункта вы можете использовать код, подобный следующему:
//testing that null assessment throws NullPointerException
action.setAssessment(null);
action.save();
//now test that the exception was thrown
Затем проверьте, что ненулевая оценка работает... и так далее. Каждый из этих тестов является методом сам по себе.
Надеюсь, это поможет.