问题标签 [integration-testing]
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.
unit-testing - 你在哪里取笑 - 直接依赖,或者你扩大界限......?
所以,我对 C# 和 .NET 中的单元测试和模拟都相当陌生;我分别使用 xUnit.net 和 Rhino Mocks。我是一个皈依者,我想我专注于编写行为规范,而不是纯粹的 TDD。呸,语义;本质上,我想要一个自动安全网在上面工作。
一个想法让我印象深刻。我得到了针对接口的编程,而分解依赖项的好处就在那里。卖。但是,在我的行为验证套件(又名单元测试;-))中,我一次断言一个接口的行为。就像一次一个接口的实现一样,它的所有依赖项都被模拟出来并建立了期望。
这种方法似乎是,如果我们验证一个类的行为与它的协作依赖项一样,并且反过来依赖于每个协作依赖项来签署相同的质量合同,那么我们就很成功了。似乎足够合理。
不过,回到这个想法。在半集成测试中是否有任何价值,其中测试夹具针对连接在一起的具体实现单元进行断言,并且我们正在针对模拟依赖项测试其内部行为?我刚刚重读了一遍,我想我可能会措辞更好。显然,我想会有一定数量的“好吧,如果它为您增加价值,请继续这样做” - 但有没有其他人考虑过这样做,并从中获得超过成本的收益?
automated-tests - 关于集成测试的好书或其他资源?
关于如何进行单元测试的书籍足够多。
你知道任何关于集成测试的好书(或其他好的资源)吗?
我特别感兴趣的是
- 定义范围(单元测试 < 集成测试 < 自动化功能测试
- 什么是好的和坏的集成测试
- 数据访问
- 服务层
- 配置
- 用于集成测试的 Spring 或其他 DI 容器
- ...
?
unit-testing - TDD 和 ADO.NET 实体框架
我最近一直在玩 ADO.NET Entity Framework,我发现它适合我正在开发的项目的需求。我也觉得它的非侵入性很酷。
从现有数据库生成数据模型后,您将面临集成生成模型和业务逻辑的任务。更具体地说,我习惯于集成测试我的类,这些类通过 DAL 接口的模拟/存根与数据存储交互。问题是您无法使用 ADO.NET Entity Framework 执行此操作,因为它生成的实体是没有接口的简单类。
问题是:如何将TDD 方法应用于开发使用 ADO.NET Entity Framework 的应用程序?这甚至可能还是我应该迁移到另一个 DAL 生成工具集?
unit-testing - 基本上执行持久性的单元测试代码 - 我应该打扰吗?
我正在使用与数据库交互的 api。这个 api 具有查询、加载和保存元素到数据库的方法。我已经编写了集成测试,它们执行诸如创建新实例之类的操作,然后检查当我对该实例进行查询时,是否找到了正确的实例。这一切都很好。
我想对此代码进行更快的单元测试,但我想知道任何单元测试的有用性以及它们是否真的给了我任何东西。例如,假设我有一个类可以通过 API 保存一些元素。这是伪代码,但了解我使用的 api 是如何工作的。
是否值得编写模拟 m_api 成员的单元测试?似乎我可以测试,如果任何各种调用失败,则返回 false,如果所有各种调用都成功,则返回 true,并且我可以设置期望使用预期参数调用各种方法,但是这有用吗?如果我要重构这段代码,使它使用一些稍微不同的 api 方法,但获得相同的结果,这会破坏我的测试,我需要更改它们。这种脆性似乎不是很有用。
我应该为这样的代码进行单元测试,还是应该坚持使用已有的集成测试?
c - 如何在 C 中集成测试网络应用程序
当涉及到网络代码时,我从来没有以任何优雅或自动化的方式从单元测试转移到集成测试。
所以我的问题是:给定一个简单的基于单线程客户端/服务器的网络应用程序,您将如何将客户端和服务器集成到您当前最喜欢的测试套件中(我目前使用check)。
我当然愿意改变单元测试套件来实现我的目标。
编辑:虽然我很欣赏答案,但我更多的是寻找一些将集成测试集成到我的单元测试框架中的神奇方法(如果可能的话)。就像如果可以应用fork () 或其他东西而不会产生太多副作用。
unit-testing - 我应该在同一个项目中混合我的单元测试和集成测试吗?
我正在使用 NUnit 来测试我的 C# 代码,并且到目前为止,我一直将单元测试(快速运行的测试)和集成测试(运行时间更长的测试)分开,并保存在单独的项目文件中。我使用 NUnit 进行单元测试和集成测试。我刚刚注意到 NUnit 提供的category 属性,以便可以对测试进行分类。这就引出了一个问题,我应该将它们混合在一起并简单地使用类别属性来区分它们吗?
asp.net - 单元/集成测试,它们应该有多细?
我正在使用 NUnit/Watin 测试我的 ASP.Net Web Forms 应用程序的 UI。我了解有关 TDD、单元测试、集成测试等的高级概念,但直到现在还没有太多机会使用它们。
因此,当我在数据输入表单上测试验证逻辑时,我应该编写一个测试来触发我的每个验证错误(即字段 x 是必需的),还是针对应该抛出的每个验证错误单独测试通过表格。这仅仅是一个样式问题,还是有正当理由编写多个测试而不是一个针对我的验证逻辑的所有可能组合的测试?
伪代码:
对比
java - 如何配置 JPA 以在 Maven 中进行测试
有没有办法在 Maven 项目中设置第二个 persistence.xml 文件,以便它用于测试而不是用于部署的普通文件?
我尝试将 persistence.xml 放入 src/test/resources/META-INF,它被复制到 target/test-classes/META-INF,但似乎是 target/classes/META-INF(来自 src/main 的副本/resources) 得到首选,尽管mvn -X test
以正确的顺序列出类路径条目:
我希望能够针对简单的 hsqldb 配置运行测试,而无需更改 JPA 配置的部署版本,最好是在项目签出后直接进行,无需进行任何本地调整。
unit-testing - RSpec vs Cucumber(RSpec 故事)
我什么时候应该为 Rails 应用程序使用规范,什么时候应该使用 Cucumber(以前的 rspec-stories)?当然,我知道规范的工作方式和积极使用规范的方式。但是使用 Cucumber 仍然感觉很奇怪。我目前对此的看法是,当您为客户端实现应用程序并且还不了解整个系统应该如何工作时,使用 Cucumber 很方便。
但是如果我在做自己的项目呢?大多数时候,我知道系统的各个部分是如何交互的。我需要做的就是编写一堆单元测试。那么我需要 Cucumber 的可能情况是什么?
并且,作为相应的第二个问题:如果我写 Cucumber 故事,我是否必须写规范?这不是对同一件事进行双重测试吗?
testing - 如何在您的公司/工作/项目上执行集成测试?
我想改进我工作的集成测试方法,我想知道这个过程在其他地方是如何发生的。
比如:
- 什么时候开始编写测试计划
- 测试人员、开发人员和要测试的东西(整个应用程序或修改)之间的比例
- 使用什么样的方法进行集成测试。
实际上,我测试 webapps 和测试计划是通过 Test Link 管理的。发现的错误会在 Bugzilla 上报告。我正在尝试使用 Selenium RC 自动化测试,但我需要一些时间来编写计划并编写要在 Selenium 上执行的代码。时间是我没有的东西,因为我正在测试 3 个或更多应用程序。
我的大多数问题都是由测试环境和生产环境之间的差异引起的。但是测试需要很长时间才能开始。如果今天有人完成修改,我需要大约 3 周的时间才能开始测试。并且测试进程队列不断增长。
如果有人提出可以改进测试过程的建议(例如更多人测试等),那将是非常好的。但大多数情况下,我想听听测试过程在其他地方是如何运作的。
谢谢。