有人可以帮我这个忙。我正在使用Jersey休息测试框架版本2.21(在Grizzly容器上)编写Rest资源的单元测试。
当我调试测试类时,看到myManager的模拟对象。但是,当调试进入“
MyResouce类”时,myManager对象将变为null并得到NullPointer异常。
尝试过其他人提供的解决方案,但是没有运气。请有人帮我。我将近三天就遇到这个问题。:(
我的资源类就是这样。
@Component
@Path("/somepath")
public class MyResource {
@Autowired
private MyManager myManager;
@Path("/somepath")
@GET
@Produces("application/json")
@ResponseType(String.class)
public Response getResults(@QueryParam("queryParam") String number) {
// myManager is an interface
String str = myManager.getResult(number);
}
}
这是我的测试课
public class MyResourceTest extends JerseyTest {
@Mock
private MyManager myManager;
@InjectMocks
private MyResource myResource;
@Override
protected Application configure() {
MockitoAnnotations.initMocks(this);
return new ResourceConfig().register(MyResource.class)
.register(new AbstractBinder() {
@Override
protected void configure() {
bind(myManager).to(MyManager.class);
}
});
}
@Test
public void getResultsTest() {
when(myManager.getResult(anyString())).thenReturn(mock(String.class));
String str = target("path").queryParam("queryParam","10").request().get(String.class);
}
}
您正在使用Spring(注入)注释,因此将从Spring上下文中查找服务。这就是为什么它为null的原因,因为您尚未在spring上下文中设置该模拟。
最好的办法是使用构造函数注入(而不是字段注入)。这使测试更加容易
@Path(..)
public class MyResource {
private final MyManager manager;
@Autowired
public MyResource(MyManager manager) {
this.manager = manager;
}
}
然后在你的测试
return new ResourceConfig()
.register(new MyResource(myManager));
CalculatorOperationSmockTest.java 我成功地使用测试了上面的,但是我是Mockito框架的新手,当我尝试运行文件时,我得到了下面的错误,我不知道如何解决它
我有DaoImpl类: 我的测试是: 测试是成功的,但是当我运行具有覆盖率的junit测试时,它显示方法没有被覆盖,因此我的整体单元测试行覆盖率低于要求。我们能涵盖那部分吗?如果是,我们怎么做?谢了。
我正在为我的应用程序创建一个Spring BootAPI。我试图使用mockito对我的服务实现进行单元测试,以模拟出细节。该服务将向数据库添加一个新的构建实体。下面是服务实现和测试实现。楼宇服务: BuildingServiceImpl_UT
我正在使用和Spy对函数进行单元测试。 这是正在测试的类: 我正在尝试使用Mockito和spy进行测试,因为我不想调用真正的函数只需验证一下即可。该测试称为 这是错误: 我也尝试过这样做,它会导致空指针:
我正在构建一个网络项目,它使用Maven进行构建,并使用泽西进行RESTful API。我使用TestNG和泽西测试框架编写了单元测试,并在内存中运行它们,而不是在网络服务器上。 在我的测试中,我对MySQL数据库进行了JDBC调用,并得到了一些结果。当我使用TestNG for Eclipse插件从Eclipse内部运行时,测试运行良好。但是,当我尝试使用以下两个命令之一从Maven运行时: 或
我使用JUnit4和Mockito创建了一个Spring Boot2应用程序。当我测试某种方法时。会出现这样的例外: 这是我的测试代码 SuveryService.java SurveyRepository.java 我引用了这篇文章Mockito NullPointerException,但这个问题仍然存在。任何帮助都将被应用。