问题标签 [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 回答
448 浏览

ruby-on-rails - RSpec:使用嵌套资源时无法将图像转换为字符串

我在使用 RSpec 视图测试时遇到问题。我正在使用嵌套资源和具有 belongs_to 关联的模型。

这是我到目前为止所拥有的:

我收到的错误:

查看发生异常的 rails 代码并不是很有启发性。关于如何缩小这里发生的事情的任何想法?

我尝试过的一件事是直接从示例中调用 form_for,但我得到了一个不同的错误,抱怨缺少在 Spec::Rails::Example::ViewExampleGroup::Subclass_4:0xblah 上定义的“多态路径”。不确定这是否真的意味着什么。

0 投票
3 回答
200 浏览

version-control - 版本控制 - 存根和模拟

为了这个问题,我不关心存根,模拟,假人,假货等之间的区别。

假设我正在和另一个人一起做一个项目。我正在处理组件 A,他正在处理组件 B。它们一起工作,所以我将 B 存根用于测试,而他将 A 存根。我们正在使用 DVCS,比如说 Git,因为实际上是这样这里。

当需要将我们的组件合并在一起时,我们需要从我的 A 和他的 B 中获取“真实”文件,但扔掉所有虚假的东西。在开发过程中,假货很可能(除非我需要学习如何正确地存根)假货与真货具有相同的文件名和类名。

所以我的问题是:对赝品进行版本控制的正确程序是什么,以及组件如何正确合并,确保抓住真品而不是假货?我猜想一种方法就是进行合并,期望它说 CONFLICT,然后从半合并文件中手动删除所有假代码。但这听起来乏味且效率低下。

假的东西根本不应该进入VC吗?他们应该在合并之前被撕掉吗?对不起,如果这个答案应该是显而易见的或微不足道的,我只是在这里寻找“建议的做法”。

编辑:我没有意识到的更多信息会证明很重要。我专门谈论 Web 开发,更具体地说,我不是在谈论 .NET 开发。我的历史似乎在这方面误导了人们。

0 投票
2 回答
3491 浏览

windows - windows的lua“存根”dll的目的是什么

我正在考虑将 Lua 合并到 C++ 项目中,并且对 Luabinaries 的发行版中存在两个二进制文件(lua51.dll 和 lua5.1.dll)感到有些困惑

根据文档...

在 Windows 中,您的库或应用程序必须与存根库链接。存根库是仅包含将您的 DLL 与 Lua DLL 绑定的函数声明的库。

为什么?在与第三方 DLL 链接之前,我从来不需要存根 DLL?

0 投票
1 回答
722 浏览

php - 如何生成像 wordpress 这样的独特标题?

hye im maya,我需要生成像 wordpress 这样的独特标题。如果标题hello-world存在,下一个标题将是hello-world-2

谢谢

0 投票
7 回答
2706 浏览

unit-testing - 如何保持你的单元测试简单和隔离,同时仍然保证 DDD 不变量?

DDD 建议域对象在任何时候都应该处于有效状态。聚合根负责保证不变量和工厂组装具有所有必需部分的对象,以便它们在有效状态下初始化。

然而,这似乎使创建简单的、独立的单元测试的任务复杂化了很多。

假设我们有一个包含 Books 的 BookRepository。一本书有:

  • 一位作家
  • 一个类别
  • 您可以在其中找到这本书的书店列表

这些是必需的属性:一本书必须有作者、类别和至少一个可以购买该书的书店。可能存在 BookFactory,因为它是一个相当复杂的对象,并且 Factory 将使用至少所有提到的属性来初始化 Book。也许我们也会将 Book 构造函数设为私有(以及嵌套的 Factory),这样除了 Factory 之外,没有人可以实例化一个空的 Book。

现在我们要对返回所有书籍的 BookRepository 方法进行单元测试。为了测试该方法是否返回书籍,我们必须设置一个测试上下文(AAA 术语中的排列步骤),其中一些书籍已经在存储库中。

在 C# 中:

鉴于我们可以用来创建 Book 对象的唯一工具是 Factory,因此单元测试现在使用并依赖于 Factory,并且不正确地依赖于 Category、Author 和 Store,因为我们需要这些对象来构建 Book,然后将其放入测试上下文。

您是否会认为这是一种依赖关系,就像在服务单元测试中我们将依赖于服务将调用的存储库一样?

您将如何解决必须重新创建整个对象集群才能测试简单事物的问题?您将如何打破这种依赖关系并摆脱我们在测试中不需要的所有这些 Book 属性?通过使用模拟或存根?

如果你模拟存储库包含的东西,你会使用什么样的模拟/存根,而不是模拟被测对象与之交谈消费的东西?

0 投票
3 回答
10768 浏览

ruby - 有没有办法撤消 Test::Unit 中 any_instance 的 Mocha 存根

就像这个问题一样,我也在使用 Ryan Bates 的 nifty_scaffold。它具有使用 Mocha 的any_instance方法来强制隐藏在控制器后面的模型对象中的“无效”状态的理想方面。

与我链接的问题不同,我没有使用 RSpec,而是使用 Test::Unit。这意味着那里的两个以 RSpec 为中心的解决方案对我不起作用。

是否有一种通用的(即:与 Test::Unit 一起使用)方法来删除 any_instance 存根?我相信它会导致我的测试出现错误,我想验证一下。

0 投票
2 回答
854 浏览

java - Scala 中的存根网络调用

我目前正在编写 Spotify 元数据 API 的包装器来学习 Scala。一切都很好,但我想对代码进行单元测试。为了正确地做到这一点,我需要存根 Spotify API 并获得一致的返回值(比如曲目的流行度变化非常频繁)。

有谁知道如何在 Scala、JVM 中存根 Web 调用,或者使用一些我可以连接到我的 Maven 设置中的外部工具?

PS我基本上在寻找像Ruby的FakeWeb这样的东西......

提前致谢!

0 投票
2 回答
5672 浏览

ruby-on-rails - 使用 RSpec 存根 before_filter

我无法理解为什么我似乎无法存根这个控制器方法 :load_user,因为如果我将实际实现更改:load_user为不返回和实例,我的所有测试都会失败@user

任何人都可以看到为什么controller.stub!(:load_user).and_return(@user)当 RSpec 向控制器发出请求时,我的存根 () 似乎无法真正被调用?

谁能看到为什么我的存根不起作用?就像我说的,我的测试只有在我确保 load_user 工作时才能通过,如果没有,我的所有测试都会失败,这让我认为 RSpec 没有使用我创建的存根。

0 投票
4 回答
1957 浏览

java - 哪个是 Java 最好的隔离框架?JMock、Easymock、Mockito 还是其他?

我意识到以前有人问过这个问题,但最后一次是在 2008 年年中。

如果你现在开始一个新项目,你会使用哪一个,为什么?它们在可读性、可用性、可维护性和整体稳健性方面的优势/劣势是什么?

0 投票
2 回答
1408 浏览

zend-framework - Zend Framework/PHPUnit:如何存根/模拟连接到数据库的对象方法?

在我的 Zend Framework 项目中,我有一个正在测试的表单。在我的表单中,多选元素从模型中获取其选项,模型从数据库中检索它们。

我尝试复制 PHPUnit 文档中的示例,但它似乎不起作用。

测试失败,因为它试图在数据库中查找不存在的表。但我根本不希望它连接到数据库。如何正确存根/模拟此方法,使其不调用数据库?