mockito相关内容

使用 Mockito 测试抽象类

我想测试一个抽象类.当然,我可以手动编写一个从类继承的模拟.> 我可以使用模拟框架(我使用的是 Mockito)而不是手工制作我的模拟吗?怎么样? 解决方案 以下建议让您无需创建“真正的"子类即可测试抽象类 - Mock 是子类. 使用 Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS),然后模拟任何被调用的抽象方法. 示例: ..
发布时间:2021-11-26 16:44:09 Java开发

如何在 JUnit5 中使用 Mockito

如何在 Mockito 和 JUnit 5 中使用注入? 在 JUnit4 中,我可以只使用 @RunWith(MockitoJUnitRunner.class) 注释.JUnit5中没有@RunWith注解? 解决方案 Mockito 的使用方法有很多种——我会一一介绍. 手动 使用 Mockito::mock 无论 JUnit 版本(或与此相关的测试框架)如何都有效. ..
发布时间:2021-11-25 21:11:10 Java Web开发

如何告诉 Mockito 模拟对象在下次调用时返回不同的内容?

所以,我像这样在类级别上创建一个模拟对象作为静态变量......在一个测试中,我希望 Foo.someMethod() 返回某个值,而在另一个测试中,我希望它返回不同的值.我遇到的问题是,似乎我需要重建模拟才能使其正常工作.我想避免重建模拟,而只是在每个测试中使用相同的对象. class TestClass {私有静态 Foo mockFoo;@课前公共静态无效设置(){mockFoo = mo ..
发布时间:2021-11-25 21:09:30 Java Web开发

Mockito:如何验证在方法中创建的对象上调用了方法?

我是 Mockito 的新手. 给定下面的类,我如何使用 Mockito 来验证 someMethod 在 foo 被调用后被调用了一次? 公共类Foo{公共无效 foo(){Bar bar = new Bar();bar.someMethod();}} 我想拨打以下验证电话, verify(bar, times(1)).someMethod(); 其中 bar 是 Bar 的模拟实 ..
发布时间:2021-11-25 21:05:59 Java Web开发

Mockito:试图监视方法是调用原始方法

我使用的是 Mockito 1.9.0.我想在 JUnit 测试中模拟一个类的单个方法的行为,所以我有 final MyClass myClassSpy = Mockito.spy(myInstance);Mockito.when(myClassSpy.method1()).thenReturn(myResults); 问题是,在第二行中,myClassSpy.method1() 实际上被调用 ..
发布时间:2021-11-25 21:01:20 Java Web开发

初始化模拟对象 - MockIto

有很多方法可以使用 MockIto 初始化模拟对象.其中最好的方法是什么? 1. 公共类 SampleBaseTestCase {@Before public void initMocks() {MockitoAnnotations.initMocks(this);} @RunWith(MockitoJUnitRunner.class) mock(XXX.class); 如果还有比 ..
发布时间:2021-11-25 19:43:42 Java Web开发

使用 Mockito 多次调用具有相同参数的相同方法

有没有办法让存根方法在后续调用中返回不同的对象?我想这样做是为了测试来自 ExecutorCompletionService 的不确定响应.即测试无论方法的返回顺序如何,结果都保持不变. 我要测试的代码看起来像这样. //创建一个完成服务,以便我们可以将这些任务组合在一起ExecutorCompletionService;完成服务 =新的 ExecutorCompletionService ..
发布时间:2021-11-25 19:37:13 Java Web开发

使模拟方法返回传递给它的参数

考虑如下方法签名: public String myFunction(String abc); Mockito 能否帮助返回与方法接收到的相同的字符串? 解决方案 您可以在 Mockito 中创建答案.假设我们有一个名为 Application 的接口,其中包含一个 myFunction 方法. 公共接口应用{公共字符串 myFunction(String abc);} 这是带有 ..
发布时间:2021-11-25 18:30:54 Java Web开发

最终方法模拟

我需要使用 mockito 用 final 方法来模拟一些类.我写过这样的东西 @Test公共无效测试(){B b = 模拟(B.class);doReturn("bar 调用").when(b).bar();assertEquals("必须被\"覆盖\"", "bar 被调用", b.bar());//bla-bla}B类{公共最终字符串栏(){返回“失败";}} 但它失败了.我尝试了一些“ ..
发布时间:2021-11-25 18:25:19 Java Web开发

@Mock、@MockBean 和 Mockito.mock() 的区别

在创建测试和模拟依赖时,这三种方法有什么区别? @MockBean: @MockBean我的服务我的服务; @Mock: @Mock我的服务我的服务; Mockito.mock() MyService myservice = Mockito.mock(MyService.class); 解决方案 Plain Mockito 库 import org.mockito.Mock; ..
发布时间:2021-11-25 18:05:56 Java Web开发

如何在 Mockito 中正确匹配可变参数

我一直在尝试使用 Mockito 来模拟带有可变参数的方法: 接口 A {B b(int x, int y, C... c);}A a = mock(A.class);B b = 模拟(B.class);当(a.b(anyInt(), anyInt(), any(C[].class))).thenReturn(b);assertEquals(b, a.b(1, 2)); 这不起作用,但是如果我 ..
发布时间:2021-11-25 17:55:41 Java Web开发

使用 Mockito 调用 new() 测试类

我有一个遗留类,其中包含一个用于实例化 LoginContext 对象的 new() 调用: 公共类TestedClass {公共登录上下文登录(字符串用户,字符串密码){LoginContext lc = new LoginContext(“登录", callbackHandler);}} 我想使用 Mockito 测试这个类来模拟 LoginContext,因为它要求在实例化之前设置 JA ..
发布时间:2021-11-25 17:48:57 Java Web开发

@RunWith(MockitoJUnitRunner.class) vs MockitoAnnotations.initMocks(this)

在编写新的 jUnit4 测试时,我想知道是使用 @RunWith(MockitoJUnitRunner.class) 还是 MockitoAnnotations.initMocks(this). 我创建了一个新的测试 &向导会自动使用 Runner 生成测试.MockitoJUnitRunner 的 Javadoc 声明如下: 与 JUnit 4.4 及更高版本兼容,此运行程序添加了 ..
发布时间:2021-11-25 17:41:02 Java Web开发

为什么 Mockito 不模拟静态方法?

我在这里阅读了一些关于静态方法的主题,我想我理解误用/过度使用静态方法可能导致的问题.但是我并没有真正了解为什么很难模拟静态方法. 我知道其他模拟框架,如 PowerMock,可以做到这一点,但为什么 Mockito 不能? 我阅读了这篇文章,不过作者似乎对static这个词很反感,可能是我的理解太差了. 一个简单的解释/链接会很棒. 解决方案 我认为原因可能是模拟对象库 ..
发布时间:2021-11-25 16:29:36 Java Web开发

Mockito 如何只模拟超类方法的调用

我在一些测试中使用 Mockito. 我有以下课程: class BaseService {公共无效保存(){...}}公共 Childservice 扩展 BaseService {公共无效保存(){//一些代码超级保存();}} 我只想模拟 ChildService 的第二个调用 (super.save).第一次调用必须调用真正的方法.有没有办法做到这一点? 解决方案 不,M ..
发布时间:2021-11-25 16:18:11 Java Web开发

如何模拟使用 PowerMock 进行测试的私有方法?

我有一个类,我想用一个调用私有方法的公共方法来测试它.我想假设私有方法正常工作.例如,我想要类似 doReturn....when... 的东西.我发现有使用 PowerMock 的可能解决方案,但该解决方案对我不起作用.如何做到?有人遇到过这个问题吗? 解决方案 我看不出这里有什么问题.通过使用 Mockito API 的以下代码,我设法做到了: 公共类 CodeWithPrivate ..
发布时间:2021-11-25 15:57:01 Java Web开发

使用 Mockito 测试抽象类

我想测试一个抽象类.当然,我可以手动编写一个从类继承的模拟.> 我可以使用模拟框架(我使用的是 Mockito)而不是手工制作我的模拟吗?怎么样? 解决方案 以下建议让您无需创建“真正的"子类即可测试抽象类 - Mock 是子类. 使用 Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS),然后模拟任何被调用的抽象方法. 示例: ..
发布时间:2021-11-25 15:48:41 Java Web开发

Mockito - doReturn() 和 when() 之间的区别

我目前正在使用 Mockito 在 Spring MVC 应用程序中模拟我的服务层对象,我想在其中测试我的控制器方法.然而,当我一直在阅读 Mockito 的细节时,我发现方法 doReturn(...).when(...) 等价于 when(...).thenReturn(...).所以,我的问题是让两种方法做同样的事情有什么意义,或者 doReturn(...).when(...) 和 whe ..
发布时间:2021-11-25 14:47:08 Java Web开发

@Mock 和 @InjectMocks 的区别

@Mock 和 @InjectMocks 在 Mockito 框架中有什么区别? 解决方案 @Mock 创建一个模拟.@InjectMocks 创建类的一个实例,并将使用 @Mock(或 @Spy)注解创建的模拟注入到该实例中. 请注意,您必须使用 @RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this) 来初始化这些模 ..
发布时间:2021-11-25 14:32:11 Java Web开发

使用 Mockito 来模拟一些方法而不是其他方法

有没有什么办法可以使用 Mockito 来模拟类中的某些方法,而不是其他方法? 例如,在这个(公认是人为的)Stock 类中,我想模拟 getPrice() 和 getQuantity() 返回值(如下面的测试片段所示)但我希望 getValue() 执行乘法,如 Stock 类 公共类股票{私人最终双倍价格;私有最终整数数量;库存(双倍价格,整数数量){this.price = 价格;t ..
发布时间:2021-11-25 13:50:04 Java Web开发