问题标签 [stubs]

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

unit-testing - 必要的合同测试是否意味着存根?

最近,我阅读了很多关于合同和协作测试的文章(主要来自 JB Rainsberger)。为了融入其中,我开始了一个小项目。

据我了解,契约测试的职责是确保实现尊重其接口固有契约。换句话说,它鼓励了 Liskov 替换原则。

基本上,嘲笑对象合作者就是对它做出假设。现在,如果这些假设发生变化会发生什么?如果我像这样使用 Mockito 模拟协作者(这与存根相同):

当我修改协作者界面(即它的合同)时,我将无法注意到这些变化。

所以这是我的问题:当伪造一个为被测系统提供间接输入的合作者时,是否应该使用存根来防止未注意到的接口/合同更改?

以下是我已经检查过的一些链接:

删除集成测试诈骗理解协作和合同

以不同的方式在 Java 中编写合同测试

我希望我足够清楚,如果没有,我会尽力使这更透明。提前感谢大家。

0 投票
1 回答
2797 浏览

rspec - rspec 查看存根和部分

我正在使用 RSpec(Rails 3.2.8 上的 2.12)测试视图。我正在使用 CanCan 有条件地在页面上显示某些元素。这需要一个控制器方法'current_user'。在我的一些规范中,我已经能够删除 current_user,例如。controller.stub(:current_user).and_return(etc) 或 view.stub.etc 。

这适用于我的一些规格。但是我有几个不起作用,我不明白为什么。

它不起作用的两个规范测试了一个视图,该视图调用了一个部分,并且在部分内部我将“current_user”作为一种方法访问。错误是

所以我想我的问题是如何正确地存根方法,以便可以在部分内部访问它们。

应该怎么做?

0 投票
3 回答
8681 浏览

unit-testing - 了解存根、伪造品和模拟物。

我刚刚开始阅读使用 C# 进行专业测试驱动开发:使用 TDD 开发真实世界应用程序

我很难理解存根、假货和模拟。据我目前了解,它们是用于对项目进行单元测试的假对象,并且模拟是一个带有条件逻辑的存根。

我想我已经了解到的另一件事是,模拟与依赖注入有某种关系,这是我昨天才设法理解的概念。

我不明白为什么我会实际使用它们。我似乎无法在网上找到任何能正确解释它们的具体例子。

谁能给我解释一下这个概念?

0 投票
2 回答
353 浏览

java - Axis2 存根生成问题

我使用 Apache axis2(用于 SOAP Web 服务的 Apache tomcat 6 服务器实例)从 WSDL 生成 Java 存根。生成的存根包含很多错误(100),其中一些是重复的方法,并且有一些不寻常的错误说 ARRAY.length 无法解析类型或类似的东西。由于这个错误,我无法编译存根。这是axis2的错误还是为什么会发生这种情况?

0 投票
1 回答
134 浏览

.net - 存根访问受保护的变量

我需要测试这个类:

我需要对该方法进行单元测试GetGoogleAnalyticsTag,但我需要设置属性GAInfo以正确测试它。PopulateGaInfo在生产代码中,当我们从此类派生时,我们使用我的方法来执行此操作。

如何GAInfo使用存根进行设置?

这是我的测试方法:

0 投票
1 回答
415 浏览

.net - 是否有任何工具可以基于 XSD 在 WCF 中生成存根?

我目前正在为报价服务编写存根,以便我可以继续编写我的应用程序。我有一份 xsd 的副本,该服务将请求和响应。

我正在考虑手动创建一个 WCF 服务,该服务返回基于提供的 XSD 的对象。存根将使用配置文件中的数据从存根返回响应。

我想使用相同的代码为使用存根的测试生成模拟。

这感觉像是一个常见的问题,是否有任何工具可以基于 XSD 在 wcf 中生成存根?

0 投票
1 回答
591 浏览

android - WSDL 不为 android 生成存根代码 (devicemgmt.wsdl)

哪些步骤将重现该问题?

已安装 eclipse adt、java jdk 和 maven

1.有pom.xml

2.有onvif.xsd

3.拥有devicemgmt.wsdl

4.为java JDK(JAVA_HOME)、Maven(M2_HOME)和for sdk(ANDROID_HOME)声明de环境变量

5.在eclipse中(在一个android应用项目中)创建一个文件夹WSDL,把文件onvif.xsd和devicemgmt.wsdl放在里面。dwvicemgmt.wsdl 已经在文件末尾声明了ip。 肥皂:地址位置="http://59.124.49.22:8083/onvif/device_service"

6.在CMD进入项目的文件夹并运行命令mvn generate-sources eclipse:eclipse

projet和pom.xml、devicemgmt.wsdl和onvif.xsd在这个链接: https ://www.dropbox.com/s/xd8byoh9ebqoiuv/devicemgmt.rar ?

什么是预期的输出?你看到了什么呢?加速命令 mvn generate-sources eclipse:eclipse 在 pom.xml (TARGET 文件夹)中描述的文件夹中生成一些代码。

您使用的是什么版本的产品?在什么操作系统上?windows 7 32bit jdk 1.6.0.45 maven 3.0.5-bin

请在下面提供任何附加信息。

我遵循了本教程(https://code.google.com/p/android-soap-enabler/wiki/FiveMinutesTutorial),但使用了不同的 .wsdl,并且我已经放置了 eclipse 需要的所有 jar。我还有一个问题,当我在运行 mvn generate-sources eclipse:eclipse 后刷新项目时,/gen 已经存在但不是源文件夹。转换为源文件夹或重命名它。

我尝试使用 tempconvert.wsdl 运行,一切正常,但使用 devicemgmt.wsdl 不会生成任何内容。

0 投票
2 回答
4501 浏览

c# - 我是否在我的测试方法中存根或填充一个方法?

我的base.ResolveDate()测试方法中有一个来自基类及其公共和虚拟的方法。我想用我自己的方法来存根/填充这个方法,那么我应该存根还是填充?Stub 或 Shim,我该怎么做呢?根据我对 MS Fakes 的经验,它似乎是一个存根,因为存根只能影响可覆盖的方法。- ALM 2012

下面是测试方法:

这是我想要 Stub/Shim 的基类的方法?

0 投票
1 回答
1292 浏览

ruby-on-rails-3 - Rails 测试 - 存根和模拟

我正在开发一个 Rails 项目,其中模型查询服务并从服务中获取数据。现在,当我想为模型和控制器编写测试时,我需要模仿服务。我对 Rails 测试相当陌生。我对我应该做什么感到困惑。Rails 有存根、模拟和夹具——我应该使用这三个中的哪一个。我想固定装置不会有用。建议请。谢谢。

0 投票
1 回答
914 浏览

java - JAX-WS - 具有不同 WSDL URL 的端口类型对象

我有一个 .Net Web 服务,我使用 JAX-WS 为其生成存根(在本地下载了 WSDL 和 XSD)。现在我将存根打包在一个 jar (stubs.jar) 中,并将 WSDL 以及 XSD 打包在另一个 jar (wsdl.jar) 中。

我使用像这样的存根:

虽然一切正常,但在调试过程中我注意到端口类型对象的创建需要很多时间。

此外,调试时的端口类型对象将 WSDL URL 显示为远程 URL(甚至在它被类型转换为 Binding Provider 对象之前)。

我无法确定端口类型对象中 WSDL 的 URL 更改的原因。任何人,请帮助我理解。

此外,是否可以采取任何措施来减少创建端口类型对象所需的时间。

提前致谢!