2012-11-30 102 views
2

我正在爲驗證器編寫junit測試。下面的代碼工作:Spring驗證器Junit錯誤

// initialize errors 
errors = createNiceMock(BindingResult.class); 
errors.rejectValue("orgId", "mismatch.LaunchQueryForm.orgId"); 

// activate the mock 
replay(errors); 

// go ahead and run validate now 
launchQueryValidator.validate(launchQueryForm, errors); 

// verify the errors 
verify(errors); 

但是低於在JUnit不起作用 - 區別這裏是我發送一個額外的參數錯誤消息顯示,不知道如何寫的JUnit呢?

errors.rejectValue("typeInput", "mismatch.LaunchQueryForm.typeInput", 
          new Object[] 
       { launchQueryForm.getTypeInput() }, null); 

的錯誤,我在這種情況下得到的是:提前

java.lang.AssertionError: 
    Expectation failure on verify: 
    BindingResult.rejectValue("typeInput", "mismatch.LaunchQueryForm.typeInput", ["X"], null): expected: 1, actual: 0 

感謝您尋找到這一點。

最佳, 普拉薩德

回答

1

這個問題表明,它不是在這種情況下,使用模擬一個好主意。

使用真實BindingResult實施和檢查其狀態改爲:

BindingResult errors = 
    new BeanPropertyBindingResult(launchQueryForm, "LaunchQueryForm"); 

launchQueryValidator.validate(launchQueryForm, errors); 

assertEquals("mismatch.LaunchQueryForm.orgId", 
    errors.getFieldError("orgId").getCode()); 
+0

得到這個workign在過去的這個樣子,我很好奇其他方式爲我的JUnit設置充滿了EasyMock的。無論如何,謝謝你的注意。 –