问题标签 [stub]

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 投票
1 回答
400 浏览

unit-testing - 在单元测试 getter/setter 时如何使用 Rhino-mocks?

我目前正在学习 Rhino-mocks,并认为我混淆了单元测试和模拟之间的界限。在下面的示例中,我有一个只读的 Count() 属性,我正在尝试对其测试 Get() (一个非常人为的示例,仅用于讨论目的)。正如 Assert.AreEqual 上的注释所示,Count() 属性的结果是 2,而它应该是 3。

我的问题是我可以使用 Rhino-mocks 来实际存根一个对象(在这种情况下是一个只读属性)并测试模拟 IProduct 对象的 get_Count() 属性的逻辑吗?

0 投票
1 回答
2201 浏览

ruby-on-rails - RSpec2:存根由另一个方法调用的方法

我对 rspec2 和 rails 3 有疑问。仅当我直接调用它时才调用存根方法,而不是由同一类的方法调用。

这是我的模型:

在规范中,在创建一个新位置之后,我将其存根:

然后我打电话:

它总是返回真结束我从来没有看到日志“REAL choose_a_winner_for_attack”。

但如果我打电话:

它调用真正的方法“choose_a_winner_for_attack”(我看到日志“REAL choose_a_winner_for_attack”)。

更新 这是规范的代码:

这里有问题,我期待调用存根方法。

0 投票
1 回答
428 浏览

java - 为单元测试生成 3rd 方库的存根类

我正在尝试对 SWT 库的扩展进行单元测试。我无法弄清楚如何有效地模拟和存根我正在扩展以设计我的小部件的类。

到目前为止,我想到的最好的解决方案是在我的测试源代码中重新定义 SWT 类,以便将它们加载到实际 SWT 库的顶部。然后我就有能力让存根方法做我需要的任何事情。

我现在使用这种方法的唯一问题是像 Control.java 这样的类文件超过 8K 行,我想存根每个方法,所以我没有有效的方法来删除试图访问底层操作系统的 GUI API 的代码我不想通过这些代码行。

肯定有什么我做错了,请帮忙!

0 投票
1 回答
435 浏览

ruby - 明确测试库/宝石是否由 rspec 中的存根定义?

我正在构建一个非常小的 gem 来读取图像数据格式并将图像返回为一个无聊的 ruby​​ 数组或一个不错的narray,这取决于 a) 是否已请求 narray 和 b) 如果 narray gem 可用并且必需的。我的设计是,如果有人想使用 narray 他们可以,但他们必须事先明确要求它。读取图像数据时,我检查是否定义了 narray(已被要求),并简单地将警告添加到 msg 实例变量以供以后打印/记录。

我想对此进行测试(我使用 rspec2 和 mocha 进行模拟),但我对实际使用 rspec 有点陌生。我想做类似的事情:

...但我一定错过了使用存根的意义,因为这种存根不会改变定义的行为?不管存根,定义?返回“真实”值(即,如果我取消注释代码中的 require,defined? 为 false 并且我的警告已成功添加)。

这甚至不值得测试吗?有一个更好的方法吗?任何想法将不胜感激。谢谢,

0 投票
4 回答
3349 浏览

c - 单元测试存根 C 辅助方法

我正在寻找一种方法来存根位于同一 C 文件中的辅助方法。有没有办法在不修改源文件的情况下做到这一点?我正在考虑使用#define方法替换方法bb_stub但我认为这最终会重命名方法b

这是一个示例用例:

我正在尝试创建一个测试框架,但我希望用户只需要包含一个包含框架和存根定义的文件。

谢谢。

0 投票
1 回答
257 浏览

mocking - RhinoMocks 的模拟创建泛型

我必须测试几个具有非常相似功能的不同类。

它们都注入了不同的接口,并且所有这些接口都有一个或多个具有此签名的方法:

字符串 DoSomething1(字符串);

很多被测试的类都会调用这些接口方法,我需要测试它们如何响应返回null、空字符串和抛出异常。即,如果它只有一个类,我会进行这个测试:

现在,我在 ICarDBCorrector 中还有 2 个这样的方法,我不想重复测试代码。

此外,我还有一些其他的 ComponentCorrector 类,它们使用类似的 IDbXXX 接口来完成它们的工作。

所以,我正在考虑创建一些通用方法,它可以返回正确的存根模拟以供使用,但我不知道该怎么做。

即我想要类似的东西:

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

谢谢

更新:我找到了一些解决我的问题的方法。但为了得到更“科学”的答案,我更喜欢用通用方法的解决方案来回应,正如我最初打算的那样。只是好奇。我会将“已接受答案”标记从我的答案更改为任何其他标记,这提供了另一个有趣的解决方案。

0 投票
6 回答
2096 浏览

java - 用于 Java 的 SQL 服务器存根

我有一个通过 JDBC 驱动程序使用 MSSQL 服务器的 java 应用程序。是否有某种存根可用于测试?例如,我想测试我的应用程序如何处理连接错误、SQL Server 磁盘不足和其他异常的情况。用真正的 SQL Server 模拟这个非常困难和复杂。

谢谢

0 投票
2 回答
616 浏览

ruby-on-rails - rspec 存根 current_company

我有一个 Rails 3 项目,我想将当前选择的公司存储在会话变量中。

我正在使用人员控制器规范,并且想暂时排除 current_company,因为我正在为人员新控制器操作隔离我的规范示例。

这是我对员工控制器的新操作

我不断收到错误

我也试过把它存起来而不是使用 should_receive

我犯了同样的错误。

0 投票
1 回答
2668 浏览

rspec - Rspec 控制器测试中的存根控制器操作,但仍执行

我想测试是否实际调用了控制器操作而没有在某些 before_filter 中发生重定向。由于控制器操作本身可能会执行重定向,因此我想对操作进行存根以引发特定错误(SuccessfulActionError 或类似错误),然后检查该错误作为调用该方法的指示符。

所以我添加了以下内容:

以某种方式工作,正在引发异常,但该方法中的实际代码仍被执行(例如,如果我将不存在的记录的 id 发送到“显示”操作,它会引发 ActiveRecord::RecordNotFound 异常)。

这是为什么?我想完全存根动作,就好像它被实现为

我究竟做错了什么?这是错误的方法吗?

编辑:

使用

也不行。

我在这样的 before_all 过滤器中覆盖控制器以修复未从 ApplicationController 获取的 default_url_options:

这可能是罪魁祸首吗?不幸的是,当我删除它时,这些规格根本不起作用。

0 投票
0 回答
890 浏览

linux - 使用 EC2、EBS 和 S3 在 Amazon 中的穷人 HSM ext3 上创建存根文件 -

全部 -

我正在为我在亚马逊的文件服务器创建一个糟糕的分层存储管理解决方案。我想做的是将文件从我在 EC2 中的文件服务器中以 atime > 30 天的时间移动到 S3 并留下一个存根文件。当用户使用 POSIX 标准命令尝试以任何方式访问文件时,它将被复制回主机并在主机上进行操作,此操作对用户应该是透明的,而不是速度很慢。我假设当用户访问存根文件时,我可以将整个文件透明地复制到存根文件上给用户?

我正在使用 ext3,但找不到有关创建文件系统存根文件的任何信息,或者是否可以使用几行 (python|bash) 作为 S3 中实际文件的“路径”。

我的另一个选择,也是一个不错的选择(我认为)是在文件服务器上挂载一个 POSIX<-->S3 文件系统,S3QL [2] 或 S3FS [3] 似乎是不错的选择。我仍然需要帮助创建存根文件,但至少这样存根文件目标位于同一服务器上的 POSIX 文件系统上。我让 S3QL 或 S3FS 处理 POSIX <--> S3 接口。

也许我所需要的只是一个好的存根文件 HOWTO,但是非常感谢任何帮助,非常非常感谢。

[1] http://code.google.com/p/s3ql/

[2] http://code.google.com/p/s3fs/wiki/FuseOverAmazon

C