问题标签 [stubbing]

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 回答
1305 浏览

ruby-on-rails - 在 Rspec 中使用数据库查询好吗?

我已经开始使用 Rspec 为一个非常古老的项目编写测试。我正在测试的模型都是 ActiveRecords(后端是 Oracle)。我读过一些博客说我们应该使用模拟和存根/夹具/工厂女孩而不是触发实际的 sql。我很困惑。我将不得不存根很多方法并创建很多对象。这是一个好习惯吗?

0 投票
1 回答
2665 浏览

ruby-on-rails - 使用 Rspec 存根 File.open

我正在尝试存根 File.open 以测试我拥有的读取 CSV 文件的方法。

这是模型:

这是规范代码:

但是,当我尝试这样做时,我得到(stacktrace):

我一直在用头撞这个,无法弄清楚我做错了什么。任何帮助将不胜感激!

0 投票
1 回答
6036 浏览

ruby-on-rails - RSpec:存根 SFTP

我试图从一个对象中剔除 Net::SFTP 。这是模型:

这是规格:

这是堆栈跟踪:

首先,我的方法在这里吗?我想删除 SFTP 的功能,因为我们可以确信它已经过很好的测试。相反,我想专注于确保 get_file_stream() 中的“黑匣子”返回文件流。

其次,我怎样才能正确地存根 sftp.file.open() 来完成这个?

在此先感谢您的任何想法!

0 投票
2 回答
2105 浏览

java - 如何存根/模拟 XMLBeans 对象进行测试?

我正在处理使用 Apache XMLBeans 的应用程序(扩展 org.apache.xmlbeans.XmlObject 的 XML 结构元素的接口,扩展 org.apache.xmlbeans.impl.values.XmlComplexContentImpl 的那些接口的实现)

我得到了以下功能:

  • 将 XML 对象传递给带有一些数据的方法
  • 基于此数据,为此 XML 对象生成子内容
    • 使用 XML 对象的 addFoo() 添加元素等

现在我想对此功能进行测试,但我不确定让这个 XML 对象进行测试的最佳方法是什么(我希望存根/模拟对象保持子树状态以便于测试) . 一些选项:

  • 我尝试实例化这些 FooImpl 实现对象,但它们需要引用 org.apache.xmlbeans.SchemaType sType
    • 有没有办法实例化这些?
    • 添加某些内容时,提供 null / mocked SchemaType 最终会导致 NPE
  • 使用少数需要的方法生成存根类会起作用,但最终会生成许多(> 100)个方法
  • 使用 Mockito 可以正常工作,但是要轻松测试 xml 树结构状态,我需要使用 doAnswer() 等

一些想法?

兄弟,图科

0 投票
1 回答
748 浏览

node.js - 如何监视未导出的属性

我有一个这样的模块“sitecollection”:

所以在sitescollection 中,site 是一个不被导出的模块。但在代码内部,我使用它。现在我正在为#findOrCreateById() 编写茉莉花规格。

我想指定我的 findOrCreateBy() 函数。但我想存根 site() 函数,因为规范应该独立于实现。我必须在哪里创建 spyed 方法?

0 投票
2 回答
10124 浏览

coffeescript - 用于 window.location.search 的 Sinon.JS 存根

我正在尝试测试一个调用 window.location.search 的简单函数。我试图了解如何存根此调用,以便我可以返回我选择的 url。

功能:

测试用例:

我最初的尝试是直接返回一个值,如下所示:

这当然行不通。我认为我没有正确指定存根,但它显示了我的意图。

任何有关如何解决此问题的想法将不胜感激。

0 投票
1 回答
3623 浏览

visual-studio-2012 - Visual Studio 2012 Fakes 不会为具有 Stream 返回类型的方法的接口生成存根

使用 Visual Studio 2012 生成带有“Add Fakes Assembly”的存根,一切都按预期工作,除了无法为此接口生成存根:

当我将 Stream 更改为 FileStream 时(因为 Stream 是一个抽象类,我想检查这是否只发生在抽象类中),我仍然无法生成。当我完全删除方法签名(即删除Stream OpenReadStream(string path);)时,我能够生成存根。

这是我的 .fake 文件内容:

  1. 知道为什么会发生这种情况,我该如何避免?
  2. 应该有一个 Visual Studio 输出面板,其中将显示 Fake 生成结果。我看不到任何东西,它们也没有显示在常规构建面板中。我可以在哪里找到它的任何想法?我搜索了所有 VS 2012 菜单。
0 投票
1 回答
3857 浏览

testing - 如何在 Jasmine 中将标签设置为夹具

我目前正在尝试使用 Jasmine 测试 JS 函数。由于该函数检查body标签中设置的 CSS 类,因此我想<body>在夹具中使用该标签:

jQuery 对这个存根 HTML 的引用$('body')——然后交给我正在测试的 JS 函数。但是这个body标签显然从来没有真正到达 Jasmine 测试中——它看起来好像 Jasmine 用一个 body 创建了自己的文档,并且在里面它把所有的固定装置放在一个里面div——至少当我回outerHTML显存根 body 元素的时候,我在里面看到了这个一个正文和一个与 Jasmine 相关的内联 JS 之后:

当我尝试对身体进行存根时,它是空的,但当我使用 a 时它是填充的div

有没有办法在 Jasmine 测试中存根 body 标签?

0 投票
1 回答
5366 浏览

ruby - Webmock 没有正确注册我的请求存根

我正在注册一个请求存根,如下所示:

出于某种原因,当我运行时bundle exec rspec spec,我的规格说明该请求尚未注册。注册的存根是这个,

请注意,该to_return部分丢失

我尝试用body空字符串替换标头,请求存根已正确注册,但我的规范仍然会失败,因为他们期望正文中的值不是空字符串。因此,为 body 赋值非常重要。

在我的规范中,我调用了这个方法:

关于为什么会发生这种情况的任何想法?

谢谢。

0 投票
1 回答
889 浏览

ruby-on-rails - 模型中未定义的 Any_instance

我正在编写一个 rspec 测试 - 出于某种原因,我被告知 any_instance 方法未定义。我很惊讶,因为我对我的一个控制器 rspec 文件有非常相似的期望——而且效果很好。任何想法为什么会发生这种情况?

错误

我的 rspec 版本(取自我的 gemfile)

gem "rspec-rails", ">= 2.11.0", :group => [:development, :test]

谢谢!