简体   繁体   English

我的单元测试中为NullPointerException

[英]NullPointerException in my unit test

The first function throws NullPointerException , why does this happen? 第一个函数抛出NullPointerException ,为什么会发生这种情况? The second function doesn't have any problems. 第二个功能没有任何问题。

UrlShortenerTests.Java UrlShortenerTests.Java

//Test de redireccion si la url corta existe
@Test
public void thatRedirectToReturnsTemporaryRedirectIfKeyExists()
        throws Exception {
    when(shortURLRepository.findByKey("someKey")).thenReturn(new ShortURL("someKey", "http://example.com/", null, null, null,
            null, 307, true, null, null));

    mockMvc.perform(get("/l{id}", "someKey")).andDo(print())
            .andExpect(status().isAccepted());
}

//Test de redireccion si la url corta no existe
@Test
public void thatRedirecToReturnsNotFoundIdIfKeyDoesNotExist()
        throws Exception {
    when(shortURLRepository.findByKey("someKey")).thenReturn(null);

    mockMvc.perform(get("/l{id}", "someKey")).andDo(print())
            .andExpect(status().isNotFound());
}

Stack trace: 堆栈跟踪:

test.java.urlshortener2014.web.rest.UrlShortenerTests > thatRedirectToReturnsTemporaryRedirectIfKeyExists FAILED
    org.springframework.web.util.NestedServletException at UrlShortenerTests.java:74
        Caused by: java.lang.NullPointerException at UrlShortenerTests.java:74

After reviewing your code, you must mock all the injections in UrlShortnenerOldBurgundy . 检查UrlShortnenerOldBurgundy代码后,您必须模拟UrlShortnenerOldBurgundy所有注入。 That includes WorkRepositorySponsor which is invoked in line 58 of your class UrlShortnenerOldBurgundy and causes the exception. 这包括WorkRepositorySponsor这是在你们班的58行调用UrlShortnenerOldBurgundy并导致异常。 Just add in UrlShortenerClass : 只需添加UrlShortenerClass

@Mock WorksRepositorySponsor worksRepositorySponsor;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM