java
  • testing
  • wicket
  • 2015-03-09 2 views 0 likes 
    0

    Я использую Wicket, и я хочу проверить, не приводит ли результат моей формы к успеху или ошибкам «страница не найдена». Как я мог это достичь? Ниже мой код:Ответ тестовой формы в Wicket

    HTML код

    <form wicket:id="form" enctype='multipart/form-data'> 
          <div wicket:id="feedback"></div> 
          <input type="file" wicket:id="file"></input> 
          <br></br> 
          <span wicket:id="progress"></span> 
          <input wicket:id="save" type="submit" value="Save"></input> 
          <input wicket:id="cancel" type="submit" value="Cancel"></input> 
    </form> 
    

    Java Code

    public class TestPage extends WebPage { 
    
        private static final long serialVersionUID = 1L; 
        private FeedbackPanel feedback; 
    
        // TODO Add any page properties or variables here 
    
        /** 
        * Constructor that is invoked when page is invoked without a session. 
        * 
        * @param parameters 
        *   Page parameters 
        */ 
        public TestPage(final PageParameters parameters) { 
    
        Form<?> form = new Form<String>("form"); 
        add(form); 
        feedback = new FeedbackPanel("feedback"); 
        feedback.setOutputMarkupPlaceholderTag(true); 
        form.add(feedback); 
    
        FileUploadField file = new FileUploadField("file"); 
        file.setRequired(false); 
        form.add(file); 
    
        UploadProgressBar progress = new UploadProgressBar("progress", form); 
        form.add(progress); 
    
        AjaxFallbackButton cancel = new AjaxFallbackButton("cancel", form) { 
         private static final long serialVersionUID = 1L; 
    
         @Override 
         protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
          Session.get().getFeedbackMessages().add(this, 
            "Everything is ok", FeedbackMessage.INFO); 
          target.addComponent(form); 
         } 
    
         @Override 
         protected void onError(AjaxRequestTarget target, Form<?> form) { 
          super.onError(target, form); 
          target.addComponent(feedback); 
         } 
        }; 
        cancel.setDefaultFormProcessing(false); 
        form.add(cancel); 
    
        AjaxFallbackButton save = new AjaxFallbackButton("save", form) { 
         private static final long serialVersionUID = 1L; 
    
         @Override 
         protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
          Session.get().getFeedbackMessages().add(this, 
            "Everything is ok", FeedbackMessage.INFO); 
          target.addComponent(form); 
         } 
    
         @Override 
         protected void onError(AjaxRequestTarget target, Form<?> form) { 
          super.onError(target, form); 
          target.addComponent(feedback); 
         } 
        }; 
        form.add(save); 
        } 
    } 
    

    Ниже тест-так, что я пытаюсь написать:

    //start and render the test page 
    tester.startPage(TestPage.class); 
    
    //assert rendered page class 
    tester.assertRenderedPage(TestPage.class); 
    
    
    
    FormTester formTester = tester.newFormTester("form"); 
    formTester.submit(); 
    
    tester.assertNoErrorMessage(); 
    

    Я хочу нажмите, чтобы отправить форму и прочитать ответ заявки, чтобы продолжить ее обработку.

    ответ

    2

    Вы можете отправить форму с уточнением податель использовать как:

    formTester.submit("save"); 
    

    Затем вы можете проверить ответ, получая его от тестера:

    String responseTxt = tester.getLastResponse().getDocument(); 
    

    См user guide для более подробной информации.

    Смежные вопросы