我正在SpringBootJava应用程序中为服务类构建单元测试。服务类对返回JSON响应的RESTAPI服务进行外部调用。我正在使用Mockito模拟这个调用。我在模拟服务器响应中对JSON进行硬编码。在单元测试中使用硬编码JSON是一种不好的做法吗?如果JSON结构改变,那么测试应该失败是我的推理。是否有更好的最佳实践在哪里执行此操作?下面的示例片段:实际代码是有效的,为了简洁起见,我只是编辑了这个片段以表达想法,所以如果您发现任何错误,请发表评论:publicclassUserServiceTestextendsTestCase{privatestaticfinalStringM
我们在使用Mockito时遇到了非常棘手的问题。代码:publicclassBaz{privateFoofoo;privateListlist;publicBaz(Foofoo){this.foo=foo;}publicvoidinvokeBar(){list=Arrays.asList(1,2,3);foo.bar(list);list.clear();}}publicclassBazTest{@TestvoidtestBarIsInvoked(){FoomockFoo=mock(Foo.class);Bazbaz=newBaz(mockFoo);baz.invokeBar();ve
我正在创建一些单元测试并尝试模拟一些调用。这是我的工作代码中的内容:StringsoapRequest=(SimUtil.readInputStream(request.getInputStream())).toString();if(soapRequest.equals("MyString")){...}SimUtil.readInputSteam看起来像这样:StringBuffersb=newStringBuffer();BufferedReaderreader=null;try{reader=newBufferedReader(newInputStreamReader(inpu
我需要使用mockito和powermock模拟一个不带参数的私有(private)void方法。该方法属于一个spy实例。我知道我需要这样做的事实表明代码不好,但我正在处理一个旧项目,将单元测试从一个测试框架转换为另一个测试框架。如果有人有任何建议,我们将不胜感激。谢谢!到目前为止我已经试过了:PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));但是我得到这个错误:Nomethodfoundwithname'method'withparametertypes:[]
我试图模拟restOperation以抛出异常,但我得到MockitoException而不是采取适当的异常。这对我来说很奇怪,因为当我尝试测试快乐路径时,几乎相同的模拟调用工作正常。这有什么问题:工作模拟:Mockito.when(restOperations.exchange(Mockito.anyString(),Mockito.any(),Mockito.>any(),Mockito.>any())).thenReturn(newResponseEntity(userByRoleHolder,HttpStatus.OK));模拟抛出MockitoException:Mockit
如何使用Mockito或PowerMock模拟一个由子类实现但继承自抽象父类(superclass)的protected方法?换句话说,我想在模拟“doSomethingElse”的同时测试“doSomething”方法。抽象父类(superclass)publicabstractclassTypeA{publicvoiddoSomething(){//CallsforsubclassbehaviordoSomethingElse();}protectedabstractStringdoSomethingElse();}子类实现publicclassTypeBextendsTypeA{
为了测试我编写的私有(private)方法之一,我需要模拟一个Singleton。在使用PowerMockito测试了几种方法之后:PowerMockito.mockStatic(UtilDatabaseSoldeAutoCdeCommon.class);Mockito.when(UtilDatabaseSoldeAutoCdeCommon.getInstance()).thenReturn(mockDatabase);我永远无法mock这门课。因此我无法像在每个方法中一样测试我的方法,我访问数据库。UtilDatabaseSoldeAutoCdeCommon定义如下:publiccl
我是Mockito的新手,我正在尝试了解一种对依赖于注入(inject)的依赖项的类进行单元测试的方法。我想要做的是创建依赖项的模拟对象,并使我正在测试的类使用这些对象而不是Spring注入(inject)的常规注入(inject)依赖项。我一直在阅读教程,但对如何执行此操作有点困惑。我有一个我想像这样测试的类(class):packageorg.rd.server.beans;importorg.springframework.beans.factory.annotation.Autowired;publicclassTestBean1{@AutowiredprivateSubBea
我是java的新手,必须测试类。我需要一个非常复杂的类的模拟对象,其中一些属性是对象,而这些对象又具有其他对象等等,因此对我来说手动生成一个模拟对象需要做很多工作。我想知道是否有一种方法可以自动生成该模拟对象,但不仅如此,还有是否可以用一些任意值自动填充该对象的所有属性。有人可以帮我解决这个问题吗?我要在这里举个例子,以确保我说清楚了......classA{inta;Bb;Cc;}classB{intx;Ck;}classC{Stringx;intx;}我想模拟A类的对象。我希望mockA对象具有所有可能字段的值,例如B类中的xString也... 最佳答
我在要测试的方法中得到了以下代码Filef=map.get("key1")BuffereReaderr=newBufferedReader(newFileReader(f));Stringline=null;do{line=r.readLine();}while(r!=null);我想模拟这个操作,这样我就可以从JUnit测试用例中传递文件的内容。我在下面做了:Mapfles=Mockito.mock(ConcurrentHashMap.class);Filefile=Mockito.mock(File.class);Mockito.when(files.get("key1")).th