[英]Unit test How to create a mock object for DynamicForm in play framework (java)
我有一個使用formfactory.form().bindFromRequest()
的控制器
當我嘲笑它時,它拋出一個空指針異常
bindFromRequest()
IE。
when(formfactoryMock.form()).thenReturn(df.bind(params).bindFromRequest());
如何解決?
以下是我如何模擬它以解決類似問題:
import play.data.Form;
import play.data.FormFactory;
import com.fasterxml.jackson.databind.JsonNode;
FormFactory mockFormFactory = mock(FormFactory.class);
Form mockForm = mock(Form.class);
Form mockDataForm = mock(Form.class);
when(mockFormFactory.form(any(Class.class)))
.thenReturn(mockDataForm);
when(mockDataForm.bind(any(JsonNode.class)))
.thenReturn(mockForm);
when(mockForm.hasErrors())
.thenReturn(false); // I was calling hasErrors, You may not be...
when(mockForm.get())
.thenReturn(updatedRecord); // updatedRecord was the model that I needed to pull from the form.
這不是像 OP 詢問的那樣模擬 bindFromRequest() 方法(它模擬了 bind() 方法),但概念應該是相同的,只需替換 when(mockDataForm.bind(any(JsonNode.class)))像 when(mockDataForm.bindFromResult())
(或者我認為)。
無論如何,我無法在任何地方找到任何有關如何執行此操作的示例...所以希望這對其他人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.