Я пытаюсь издеваться файл загрузка (с помощью VertX) с Mockito но бросает NullPointerError
на getParam("type")
используется в when(event.request().getParam("type")).thenReturn("application/octet-stream");
Стыковка запроса на отправку с помощью Mockito вызывает NullPointerException на «когда (event.request(). GetParam (« type »)). ThenReturn (« application/octet-stream »);
модульного тестирования Моего выглядят следующим образом:
private UploadResultatenHandler uploadResultatenHandler;
@Mock
RoutingContext event;
File folder;
Set<io.vertx.ext.web.FileUpload> upload;
HttpServerRequest httpServerRequest;
HttpServerResponse httpServerResponse;
@Before
public void setUp() {
uploadResultatenHandler = new UploadResultatenHandler();
MockitoAnnotations.initMocks(this);
when(event.request().getParam("type")).thenReturn("application/octet-stream");
when(event.fileUploads()).thenReturn(upload);
when(httpServerResponse.setStatusCode(200)).thenReturn(httpServerResponse);
when(event.response()).thenReturn(httpServerResponse);
}
@Test
public void testCleanHandler() {
uploadResultatenHandler.handle(event);
verify(event).response();
}
«uploadResultatenHandler.handle (мероприятие);" :
@Override
public void handle(RoutingContext event) {
String newFileName = event.request().getParam("type");
Set<FileUpload> uploads = event.fileUploads();
System.out.println(uploads);
for (FileUpload fileUpload : uploads) {
String oldFileName = fileUpload.uploadedFileName();
char[] inhoud = FileReader.readFileUTF8ToString(oldFileName).toCharArray();
String fileExtention = setFileExtension(fileUpload.contentType());
FileCreater.createFile(newFileName, fileExtention, "file-uploads/", inhoud);
FileDeleter.deleteFile(oldFileName);
}
event.response().setStatusCode(200).end("Check");
}
private String setFileExtension(String type) {
switch (type) {
case "text/xml":
return ".xml";
case "application/octet-stream":
return ".json";
default:
return ".txt";
}
}
Я думаю, что это, возможно, придется что-то делать с издевался RoutingContext не имея этот параметр, но я не знаю, как исправить/обойти эту ошибку?
Я изменил строку на то, когда (event.request()). ThenReturn (request); когда (request.getParam ("тип")) thenReturn ("применение/окт-поток и др."); и mocks: Mock (answer = Answers.RETURNS_DEEP_STUBS) Событие RoutingContext; Папка @Mock File; Установить загрузку; Запрос HttpServerRequest; Ответ HttpServerResponse; но я все еще получаю NullPointer
Stack след:
java.lang.NullPointerException в nl.icaprojecten.TestIntegratieQuintor.ServiceLayer.rest.UploadResultatenHandlerTest.setUp (UploadResultatenHandlerTest.java:42) на солнце. reflect.NativeMethodAccessorImpl.invoke0 (Native Method) в sun.reflect.NativeMethodAccessorImpl.invoke (Unknown Source) в sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) в java.lang.reflect.Method.invoke (Unknown Source) at org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:50) на org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) на org.junit.runners.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:47) на org.junit.internal. runners.statements.RunBefores.evaluate (RunBefores.java:24) на org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:325) на org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:78) на org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:57) в org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:290) в org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288) на org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58) на org.junit.runners.ParentRunner $ 2.оценить (ParentRunner.java:268) на org.junit.runners.ParentRunner.run (ParentRunner .java: 363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java : 38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:678)) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java : 192)
Вы не пропуская ни 'когда (event.request()) thenReturn (httpServerRequest);' в вашем методе настройки? – JonK
@JonK У меня есть следующая строка: when (event.request(). GetParam («type»)). ThenReturn («application/octet-stream»); –
Я вижу это. Но я не вижу, где вы создали то, что должно возвращать событие event.request(). Если вы не установили *, что * вверх, он вернет «null». – JonK