草庐IT

java - 如何使用 Mockito 模拟 Java 中的泛型方法?

我们如何模拟IRouteHandlerRegistry?错误是CannotresolvemethodthenReturn(IHandleRoute)publicinterfaceRouteDefinition{}publicclassTestRouteimplementsRouteDefinition{}publicinterfaceIHandleRoute{RoutegetHandlerFor(TRouteroute);}publicinterfaceIRouteHandlerRegistry{IHandleRoutegetHandlerFor(TRouteroute);}@Test

java - Mockito 匹配器 : matching a Class type in parameter list

我正在使用Eclipse处理Java、Spring的RestTemplate和Mockito。我正在尝试模拟Spring的rest模板,我模拟的方法的最后一个参数是类类型。下面是函数的签名:publicResponseEntityexchange(URIurl,HttpMethodmethod,HttpEntityrequestEntity,ClassresponseType)throwsRestClientException我最初尝试模拟这个方法如下://givenrestTemplatereturnsexceptionwhen(restTemplate.exchange(isA(U

java - 验证是否调用了所有 getter 方法

我有以下测试,我需要验证是否正在调用Person类的所有getter。到目前为止,我已经使用mockito的verify()来确保每个getter都被调用。有没有办法通过反射(reflection)来做到这一点?可能是将新的getter添加到Person类,但测试会错过它。publicclassGetterTest{classPerson{privateStringfirstname;privateStringlastname;publicStringgetFirstname(){returnfirstname;}publicStringgetLastname(){returnlast

java - 这是 Mockito spy 的正确案例吗?

假设我有一个类classSomeClass{publicvoidmethodA(){}publicvoidmethodB(){}publicvoidsomeMethod(){methodA();methodB();}}我想用Mockito测试someMethod()的行为。我能想到的唯一方法是使用spy();有点像SomeClasssomeClass=spy(newSomeClass());someClass.someMethod();InOrderinOrder=inOrder(someClass);inOrder.verify(someClass).methodA();inOrde

java - 如何为接口(interface)默认方法编写 Junit

接口(interface)默认方法请帮忙写JunitpublicinterfaceABC{defaultListgetSrc(DEFdef,XYZxyz)throwsException{}}ABC:接口(interface)名称。DEF和XYZ:类名 最佳答案 如果您使用Mockito,对默认(又名“防御者”)方法进行单元测试的最简单方法是制作一个spy1使用接口(interface)类文字2。然后可以像往常一样在返回的spy实例上调用默认方法。以下示例演示:importorg.junit.Test;importstaticorg.

java - 使用 Mockito 的 ArgumentCaptor 类匹配子类

下面的代码显示了我的问题。实际上,我正在尝试使用Mockito的ArgumentCaptor来验证是否使用某个具体类调用了一次方法。如果可能的话,我想在这里使用ArgumentCaptor,但我开始怀疑我需要改用自定义ArgumentMatcher。问题是Mockito.verify(mocked).receive(captor.capture());行(编辑:将此添加到下面的代码中)失败并出现TooManyActualInvocations异常(改为21).我想了解为什么会发生这种情况-是Mockito的实现不当还是由泛型类型删除引起的限制?publicclassFooReceive

Java `final` 类和模拟

这个问题在这里已经有了答案:Howtomockafinalclasswithmockito(28个答案)关闭12个月前。我正在开发一款编程游戏,玩家可以访问抽象类并扩展它来控制机器人的行为。因为它是一个编程游戏,所以我正在努力保护我的游戏基础设施,这样玩家就不会弄乱游戏,而不仅仅是我给他们的类(class);为此,我将大部分类(class)设为final,但现在我无法在单元测试中模拟它们(mockito+testNG)。所以我想知道,我该如何解决这个问题?有没有办法让类非最终测试,然后以某种方式在构建周期的后期自动“final-ize”它们(我使用maven以防它与答案)。我不想添加另

java - Spring Boot 测试中的 MockBean 注解导致 NoUniqueBeanDefinitionException

我在使用@MockBean注释时遇到问题。文档说MockBean可以替换上下文中的bean,但我在单元测试中遇到了NoUniqueBeanDefinitionException。我看不到如何使用注释。如果我可以模拟repo,那么显然会有不止一个b​​ean定义。我正在按照此处找到的示例进行操作:https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4我有一个mongo存储库:publicinterfaceMyMongoRepositoryextendsMongoRepository{MyDTOfi

java - 如何在 mockito 中模拟日期?

这是我的场景publicintfoo(inta){returnnewBar().bar(a,newDate());}Mytest:BarbarObj=mock(Bar.class)when(barObj.bar(10,??)).thenReturn(10)我尝试插入any()、anyObject()等。知道要插入什么吗?但是我不断收到异常:.mockito.exceptions.misusing.InvalidUseOfMatchersException:Invaliduseofargumentmatchers!3matchersexpected,1recorded:Thisexcep

java - Mockito - 模拟遗留类构造函数

我正在为一个通过构造函数引用遗留类的类编写JUnit。遗留类在第三方jar中,所以我无法重构它以使生活更轻松....这是被测试的类...publicMyClass{publicStringmethodToTest(Stringparam){LegacyClasslegacy=newLegacyClass(param);*.....etc........*}}这就是我在mockitoJUnit中尝试做的事情。publicMyClassTest{@TestpublicvoidtestMethodToTest()throwsException{LegacyClasslegacyMock=mo