问题标签 [partial-mocks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2110 浏览

php - 未调用 Laravel 部分模拟模型

我正在使用laravel (4.2)框架来开发 Web 应用程序 (PHP 5.4.25)。我创建了一个使用 eloquent-repository 实现的存储库接口,我在 UserController 中使用该存储库:

我的存储库实现:

我还创建了一个 UsersControllerTest 来测试控制器,一切正常,用户已添加到数据库中。在我嘲笑了我的UserRepositoryInterface之后,因为我不需要测试数据库插入,但我只想测试控制器

我的 ruote 文件:

当我运行测试时,我收到以下错误:


为什么没有调用模拟方法save ?

怎么了?


编辑:没有部分模拟一切正常,现在的问题是:为什么部分模拟它不起作用?


谢谢

0 投票
2 回答
9254 浏览

jmockit - 如何在 Jmockit 中模拟私有方法时匹配“任何”参数类型

在以下场景中使用 jmockit 时遇到问题。在网上做了一个研究,但还没有找到答案。

在记录阶段,我将期望设置在部分模拟的对象上。在这样做时,我想模拟一个带有单个参数的私有方法。但我并不真正关心该参数值。我想将该特定私有方法的所有调用与传递给它的任何参数实例相匹配。我如何在 Jmockit 中做到这一点。有办法吗?

在上面的代码中,(Department) any不能传递,因为Deencapsulation.invoke(...)方法不接受null值。

0 投票
1 回答
2622 浏览

java - 如何部分模拟使用 Mockito 引发异常的方法?

测试异常处理很有用。在这种特定情况下,我有一个提取器,它会在解组特定类时引发异常时执行特定任务。

示例代码

下面是代码的简化示例。生产版本要复杂得多。

我尝试过的事情

这是我尝试过的事情的清单。为简洁起见,我没有填写所有平凡的细节。

间谍

下面的方法什么都不做,也不会抛出异常。我不确定为什么。

嘲笑

以下内容不起作用,因为部分模拟似乎不能很好地与抛出异常的方法一起使用。

然后回答

这可行,但我不确定这是否是正确的方法:

问题

尽管该thenAnswer方法有效,但它似乎不是正确的解决方案。在这种情况下执行部分模拟的正确方法是什么?

0 投票
1 回答
1696 浏览

junit - 无法使用 PowerMockito 部分模拟静态方法

我要在 Util 类中模拟一个名为toBeMockedFunction的静态函数。此方法是从toBeUnitTested调用的,它是一个公共静态 void 方法。我想对 BeMocked 函数什么都不做。我尝试了许多部分模拟和存根的方法(发布了这样的 2 的片段)并且无法成功。

请提出我做错了什么。

下面是我的junit类

  1. 方法2

    /li>
0 投票
1 回答
2500 浏览

java - JMockit - 部分模拟和模拟父级

我想测试(使用 JMockit)一个看起来像这样的类:

我不能改变班级。问题是 ComplexParentClass 有一个复杂的构造函数,这使得它很难测试。所以我想模拟父类。我还想模拟复杂的私有方法。但这样的事情可能吗?

我尝试了以下方法:

不过,这会导致“已经模拟”的异常。

有人知道如何解决这个问题吗?

0 投票
1 回答
328 浏览

java - 是否可以使用@Spy 表示法在 Mockito 中声明但不能实例化间谍对象?

我正在为遗留代码编写一些 JUnit 测试,并且我非常喜欢使用注释。我想知道是否可以为间谍对象创建声明并稍后实例化它。我问的原因是因为我有一个带有非空构造函数的类。在设置测试用例之前,此构造函数的值是未知的。下面的代码显示了我想做的事情:

我认为能够做到这一点的唯一方法是混合我的语法并使用传统的 spy(object to mock) 表示法。那是:

或类似的东西。对此有什么想法吗?

0 投票
0 回答
393 浏览

c# - Rhino 模拟:模拟属性以返回默认(空)值

如果我将使用动态模拟并尝试使用未设置的属性,它将简单地返回该属性的 default(null)。

我只需要在部分模拟中对一个属性进行相同的行为。我需要这个属性返回 null。(属性不应该是虚拟的)

例如:

0 投票
1 回答
313 浏览

java - 如何使用 PowerMock 和 Mockito 对 Files.java 中的 newDirectoryStream 进行部分模拟?

我想部分模拟 Files.java newDirectoryStream 静态方法。

当我使用 mockStatic 时,下面的示例工作得很好。不幸的是,这种方法模拟了所有静态方法。我只想模拟一个特定的,所以想通过调用 spy 方法来使用部分模拟。

执行上述代码时抛出异常:

0 投票
1 回答
702 浏览

java - Mockito.mock 何时创建部分模拟而不是“完整”模拟?

鉴于此代码:

运行时makeit,输出为:

这似乎表明正在创建主题的某些实例,但绕过了潜在的关键构造函数逻辑。这与“部分模拟”是一致的,但代码并没有做任何事情来请求这样的事情。

我发现这是默认行为令人惊讶,因为文档都强烈警告不要使用部分模拟。我一直无法找到描述何时mock()返回部分模拟的文档,因此无法弄清楚如何从课程中获得“完整模拟”。

所以:

  • 何时Mockito.mock()创建部分模拟?
  • Mockito 可以为班级创建“完整模拟”吗?还是只是为了一个界面?
  • 如何请求“完整模拟”?
0 投票
0 回答
165 浏览

spring-mvc - Mockito 测试旧代码上的服务调用

我正在为调用服务的遗留 spring 控制器代码创建 junit 测试用例(创建服务调用的新实例而不是 autowire/spring bean)。我希望模拟服务类调用。请告知是否可能。
更改旧代码不是我的选择。

Spy 和 Mocktio 调用真实方法选项不起作用。请让知道如何模拟它。