Проверка действия Struts

Эй, люди. Недавно я проверял действия Struts 2. В одном из моих классов действий метод сохранения, если быть точным, должен иметь два идентификатора. Это идентификатор типа оценки и идентификатор курса. это то, что есть до сих пор.

@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";

}

person pundit    schedule 23.11.2009    source источник
comment
На самом деле вы не задали вопрос, и трудно догадаться, чего вы пытаетесь достичь с помощью этого кода. Похоже, это ваш модульный тест для действия. Может быть, вы можете описать, что делает действие и как вы собираетесь его тестировать. Тогда могут появиться некоторые ответы.   -  person Vincent Ramdhanie    schedule 26.11.2009
comment
Что делает ваш action.save()?   -  person Trick    schedule 30.11.2009
comment
Вопрос не ясен, и код тоже выглядит странно. Начнем с того, что более распространенным шаблоном для getId() является возврат числа, а для одного — проверка Assessment == null. Но в этом коде getId(), похоже, возвращает объект (какого типа?), поскольку вы тестируете Assessment.getId() == null.   -  person Todd Owen    schedule 10.12.2009


Ответы (1)


При модульном тестировании кода вам нужно начать со спецификации тестируемого метода. Давайте взглянем на метод, который вы пытаетесь протестировать, и «угадаем», каковы его характеристики.

  1. Если какая-либо отмена переменной имеет значение null, выполните метод, в противном случае немедленно вернитесь
  2. объект оценки не может быть нулевым (иначе строка boolean isNew = (assessment.getId() == null); завершится ошибкой, и вы не будете проверять нуль). С другой стороны, эта строка, похоже, не служит никакой цели в вашем коде, поскольку вы больше нигде не используете isNew.
  3. AssessmentType также не равен нулю, то есть он должен существовать заранее.
  4. курс не нулевой или должен существовать заранее
  5. AssessmentManager не является нулевым

Это всего лишь предположения из вашего кода, поэтому я уверен, что у вас их больше.

Теперь вы хотите написать тест, который проверяет каждый из них по одному. Как правило, вы хотите, чтобы метод тестирования проверял только одну вещь. Некоторая дополнительная информация также отсутствует в описании, но давайте догадаемся еще раз.

В своем классе действий struts2 вы устанавливаете объект отмены, тип оценки, курс и менеджер оценки перед вызовом этого действия. Затем вам нужно установить все это в своем тестовом методе, прежде чем вызывать действие.

Итак, для проверки первой точки нужно установить переменную Cancel. Может быть так:

 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 

Затем проверьте, работает ли ненулевая оценка... и так далее. Каждый из этих тестов сам по себе является методом.

Надеюсь, это поможет.

person Vincent Ramdhanie    schedule 29.01.2010