当有一些对象带有盒装类型属性时,该属性的getter返回0。但这应该返回null,因为装箱类型属性的默认值为null。这里有什么问题?classPerson{privateLongid;publicLonggetId(){returnid;}}...@MockPersonperson;...person.getId();//0insteadofnull 最佳答案 这只是在默认Mockito答案中为基本类型和包装类型选择的默认值。 关于java-为什么Mockito的mock在应该返回nu
为什么Mockito会吞掉堆栈跟踪?例如,如果我有一个publicclassFoo{publicvoidfoo(){bar();}publicvoidbar(){baz();}publicvoidbaz(){thrownewRuntimeException();}}和一个测试,例如publicclassMockTest{@Testpublicvoidtest(){Mockito.spy(newFoo()).foo();}}抛出的异常总是这样java.lang.RuntimeExceptionatFoo.baz(Foo.java:17)atMockTest.test(MockTest.j
我在测试中使用EasyMock模拟对象。但是我如何模拟在我的代码中其他地方创建的对象呢?看下面的伪代码。我想模拟WebService#getPersonById,我该怎么做?publicclassPerson{publicPersonfind(intid){WebServicews=newWebService();returnws.getPersonById(id);}}publicclassPersonTest{testFind(){//HowdoImockWebService#getPersonByIdhere?}} 最佳答案
我做了一些研究,发现PowerMock能够模拟静态Java方法。有人可以(从技术上)解释PowerMock与JUnit和其他不能或不能做的事情有什么不同吗?还有为什么静态方法在尝试模拟时会(曾经)引起问题?谢谢 最佳答案 http://blog.jayway.com/2009/05/17/mocking-static-methods-in-java-system-classes/为了模拟实例方法,您可以简单地在子类中覆盖它。你不能用静态方法做到这一点,因为没有“静态多态性”。Powermock可以做到这一点,因为它使用字节码,而其他
我有一个测试类(基于TestNG),我在其中使用Mockito.verify作为spy对象。这个有效:publicclassProgram{@SpyprivateTestObjecttestObject;@Testpublicvoidtest1(){testObject.makeSth();verify(testObject,only()).someMethodNeedToBeChecked();}}但是在这里:publicclassProgram{@SpyprivateTestObjecttestObject;@Testpublicvoidtest1(){testObject.mak
我有一个简单的PersonController类,它提供save()方法来保存来自httppost请求的对象。packageorg.rw.controller;importjava.sql.Timestamp;importjava.util.List;importorg.rw.entity.Person;importorg.rw.service.PersonService;importorg.rw.spring.propertyeditor.TimestampPropertyEditor;importorg.slf4j.Logger;importorg.slf4j.LoggerFact
在编写单元测试时,我需要一些带有示例数据的对象。例如,假设我有一个Order对象。需要编写这样的代码-Ordero=newOrder();o.setId(3);o.setAmount(2830.9);Listitems=newArrayList();Itemi=newItem();i.setId(3);i.setCost(34);items.add(i);o.setItems(items);它比这里看起来更令人沮丧和冗余,因为一个真实的对象可能有更多的属性和嵌套对象。如果一个人需要多个订单......创建用于测试的模拟数据对象的最佳方法是什么?我突然想到要从Json中反序列化我的对象。
我有一段代码,我想用Mockito测试:mockedClassinstanceofSampleInterfacemockedClass是模拟抽象类:MockedClass,SampleInterface是一个接口(interface)。这是失败点:Validate.isTrue(mockedClassinstanceofSampleInterface,"ThemockedClassisnotaSampleInterface");如何模拟这段代码? 最佳答案 听起来你需要MockSettings.extraInterfaces.Moc
我正在使用Mockito测试我的Java应用程序中的方法。如何测试构造函数是否被调用过一次?我正在尝试进行与此类似的验证:verify(myClass,times(1)).doSomething(anotherObject);但我无法验证是否调用了构造函数,因为它没有类似于例如doSomething(). 最佳答案 您可以使用Mockito和PowerMockito来完成。假设您有一个带有构造函数的ClassUnderTestpublicclassClassUnderTest{Stringname;booleancondition;
我有一个要模拟的简单类Foo:publicclassFoo{privateStringname;publicFoo(){}publicFoo(Stringname){this.name=name;}publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}}在我的单元测试代码中,我使用Mockito模拟它.FoomockedFoo=Mockito.mock(Foo.class);mockedFoo.setName("test");//nameisnullStringname=mocke