问题标签 [acceptance-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.
java - 聊天客户端的验收测试
我正在编写一个聊天客户端(msn messenger 风格),在编写发送/接收功能的验收测试时遇到了一些问题。
例如考虑用户故事“一个用户可以向另一个用户发送消息”。
1-我应该测试客户端软件是否与服务器正确交互吗?在这种情况下,我应该如何表示这种交互?
2-我是否应该测试第二个客户端是否真的收到了消息?在这种情况下,我应该依靠服务器来证明我的软件工作正常。这种假设在验收测试中是否正确?
我想用协和或健身来编写我的测试,但每一个帮助都非常感谢。
谢谢
cucumber - 在 BDD 用户故事/验收测试中混合当时和何时
您如何处理像这样具有长链的用户故事/验收测试,然后/何时混合在一起?是否最好将其拆分为单独的验收测试,其中一个测试对话框出现,然后第二个测试对话框显示后的行为?
java - 如何测试不同 VM 上的 2 个或多个客户端之间的交互?
我需要在完整的端到端测试中测试 2 个或更多 Java 客户端之间的交互。
理想情况下,如果没有 GUI,它应该类似于(Junit 语法):
上面的代码不是我想要的,因为它使“应用程序”在同一个 VM 上运行。
我能够自己想到的解决方案是编写一个假的 main 实例化 secondApps 并将其所有输出写入文件,通过系统调用启动它,然后检查结果,但这似乎是一个真正的矫枉过正。此外,使用这样的策略,测试 GUI 也会更加困难(如果不是不可能的话)。
谢谢您的帮助。
ruby-on-rails - 我可以在不重置浏览器状态的情况下按顺序运行多个 RSpec/Selenium 测试吗?
所以我刚开始使用 Steak,它又使用 Capybara,而 Capybara 又使用 Selenium。
因此,我听说将测试拆分为许多小的 it 子句是一种很好的 RSpec 做法,每个子句都测试一小部分功能。但是它会使测试运行花费更长的时间,因为每次测试都会重复相同的步骤。
假设我正在测试一些 ajax 功能。我想测试一下:
- 单击某个链接时会出现一个表单
- 如果我向该表单提交无效输入,则会出现错误消息
- 如果我提交有效输入等,则会出现确认消息。
但是如果我把这些东西都分解成自己的测试用例,那么 Selenium 必须从头开始:它必须加载相同的页面 3 次,单击链接以使表单出现 3 次,等等。这让我印象深刻浪费。
我想做的是指定一系列保留浏览器状态的测试,因此每个测试都会从前一个测试中断的地方继续。那可能吗?
ruby-on-rails - 如何在黄瓜中跟踪来自javascript的重定向?
我有一个按钮(不是提交按钮),它在提交另一个表单之前执行 ajax 调用。
我想做的是
但是重定向发生得有点晚,考虑到页面仍在主页中,“Then”语句失败。我怎样才能等到 ajax 调用(单击按钮的结果)完成并且页面获得提交者?
有任何想法吗?
编辑:示例 javascript 代码
为了
Javascript 是(请忽略语法错误,我想你会明白的)
unit-testing - 单元测试验收测试?
我目前正在做一些验收测试,这将有助于推动我即将进行的程序的设计。一切似乎都很好,只是我意识到验收测试有点复杂,也就是说,尽管它们在概念上很简单,但它们需要相当多的棘手代码才能运行。我需要为我的验收测试创建几个“帮助”类。
我的问题是如何开发它们:
- 对我的验收测试进行单元测试(这看起来很奇怪——有人做过类似的事情吗?)
- 为这些帮助类进行单元测试。在我完成了这些帮助类的所有代码之后,我可以通过并开始处理我系统的真正单元测试。使用这种方法时,您会将辅助类放在哪里?在测试项目中还是在实际项目中?它们不一定依赖于测试/模拟框架。
- 还有什么想法吗?
unit-testing - 在项目中途实施单元测试和验收测试
我现在在维护一个网站时很头疼。大多数情况下,事情最终会在几次更新后中断。这个网站是由我们团队的两名开发人员创建的,然后转给了我。考虑到我已经完成了项目,我想知道是否可以进行单元测试和验收测试。
现在写测试需要很长时间吗?这是否实用或有其他测试方法吗?
nhibernate - 验收测试中的依赖关系
我和一个同事正在辩论。我们正在进行一个糟糕的遗留项目,并且正在慢慢添加验收测试。他认为我们应该在 gui/watin 中完成这项工作,然后使用低级库直接查询数据库以获得他所说的“端到端”测试。
我们正在使用 NHibernate,我主张使用 gui/watin 然后使用那些 nhibernate 对象在验收测试中进行断言。他不喜欢 NHibernate 在测试中的依赖性。我的断言是我们已经/应该对 NHibernate 对象进行集成测试,以确保它们以我们想要的方式与 DB 一起工作,此时在验收测试中使用它们来断言正确操作没有任何缺点。我还认为他的低级 sql 依赖会使测试在很多情况下变得脆弱并重复业务逻辑。
我们商店的集成测试基本上意味着它具有依赖关系的单个组件,例如 fileRepository/FileSystem Domain-NhibernateObject/Database。验收测试意味着通过 GUI 进入。单元意味着所有依赖项都具有/可以被模拟/存根,并且您在内存中进行了纯测试,只有被测方法实际执行任何实际工作。让我知道我的 defs 是否关闭。
无论如何,任何关于这个主题的文章/文档/羊皮纸你可以指出我将不胜感激。
asp.net-mvc - 如何使用 SpecFlow、Cucumber 或其他 BDD 验收测试框架在不同的测试类型之间进行选择?
我正在查看 SpecFlow 示例,它的 MVC 示例包含几个用于测试的替代方案:
- 基于控制器生成的验证结果的验收测试;
- 使用 MvcIntegrationTestFramework 进行集成测试;
- 使用 Selenium 进行自动化验收测试;
- 当提示测试人员手动验证结果时进行手动验收测试。
我必须说我对 SpecFlow 示例的编写效果印象深刻(下载后我设法在几分钟内运行它们,只需要配置数据库并安装 Selenium 远程控制服务器)。查看测试替代方案,我可以看到它们中的大多数相互补充而不是替代方案。我可以想到这些测试的以下组合:
- 控制器以 TDD 风格进行测试,而不是使用 SpecFlow(我认为 Given/When/Then 类型的测试应该应用在更高的端到端级别;它们应该为各个组件提供良好的代码覆盖率;
- MvcIntegrationTestFramework 在开发会话期间运行集成测试时很有用,这些测试也是日常构建的一部分;
- 尽管基于 Selenium 的测试是自动化的,但它们速度很慢,主要是在 QA 会话期间启动,以快速验证页面和站点工作流程中没有损坏的逻辑;
- 提示测试人员确认结果有效性时的手动验收测试主要是验证页面外观。
如果您在 Web 开发中使用 SpecFlow、Cucumber 或其他 BDD 验收测试框架,您能否分享您在不同测试类型之间进行选择的实践。
提前致谢。
ruby-on-rails - Integration vs acceptance test ... what is Cucumber / Steak?
For integration tests of my Rails web app I use Steak (something like Cucumber). The specs of Steak are in a folder named spec/acceptance. Are Steak/Cucumber now for integration or acceptance testing? I always thought that this is something different.