我们一直在使用BDD - 行为驱动开发(来自Dan North的观点)作为记录用户验收测试并推动几个项目开发的机制,取得了不错的成功.到目前为止,我们实际上并没有实际自动化测试.
我现在正在考虑自动化测试,但我不确定要支持哪种行为框架.到目前为止,NBehave似乎是先行者 - 但还有其他我应该关注的吗?目前是否有明确的"赢家"?
哪些是最先进的框架和工具,可用于python实践行为驱动开发?特别是找到类似rspec和mocha的类似工具的红宝石会很棒.
测试驱动开发在过去几年中一直是.NET社区的风靡一时.最近,我听到了ALT.NET社区关于BDD的抱怨.它是什么?是什么让它与TDD不同?
我最近看完了敏捷秋天的截屏视频,我正在寻找更多类似范围的材料.基本上,我正在寻找提供TDD/BDD流程的截屏视频,同时开发一些"真实"应用程序(或部分内容) - 所以请不要20分钟.我很惊讶没有找到这样的东西.如果您知道任何符合要求的资源,请列出它们.
我正在尝试使用Jasmine为基本的jQuery AJAX请求编写一些BDD规范.我目前在独立模式下使用Jasmine(即通过SpecRunner.html
).我已配置SpecRunner来加载jquery和其他.js文件.任何想法为什么以下不起作用?has_returned并不成真,甚至想到了"yuppi!" 警报显示正常.
describe("A jQuery ajax request should be able to fetch...", function() {
it("an XML file from the filesystem", function() {
$.ajax_get_xml_request = { has_returned : false };
// initiating the AJAX request
$.ajax({ type: "GET", url: "addressbook_files/addressbookxml.xml", dataType: "xml",
success: function(xml) { alert("yuppi!"); $.ajax_get_xml_request.has_returned = true; } });
// waiting for has_returned to become true (timeout: 3s)
waitsFor(function() { $.ajax_get_xml_request.has_returned; }, "the JQuery AJAX GET to return", 3000);
// TODO: other tests might check size of …
Run Code Online (Sandbox Code Playgroud) 我有一个Rails应用程序,在我的RSpec测试中有超过2,000个例子.毋庸置疑,这是一个很大的应用程序,还有很多需要测试的地方.在这一点上运行这些测试是非常低效的,并且因为它需要很长时间,所以在推动新构建之前我们几乎不鼓励编写它们.我在我的spec.opts中添加了--profile来查找运行时间最长的示例,其中至少有10个运行平均需要10秒.在RSpec专家中你是正常的吗?一个例子10秒完全太长了吗?我意识到,有2000个例子,需要花费大量时间来彻底测试所有内容 - 但此时4小时有点荒谬.
你看到你运行时间最长的例子有多少次?我可以做些什么来解决我现有的规格,以找出瓶颈并帮助加快速度.在这一点上,每分钟都会有所帮助.
我正在使用许多jQuery插件,它经常创建没有id或其他标识属性的DOM元素,并且在Capybara中获取它们的唯一方法(例如用于点击) - 是为了让他们的邻居(其祖先的另一个孩子)首先.但我没有找到任何地方,例如Capybara支持这样的事情:
find('#some_button').parent.fill_in "Name:", :with => name
Run Code Online (Sandbox Code Playgroud)
?
Jasmine有内置的匹配器toBe
和toEqual
.如果我有这样的对象:
function Money(amount, currency){
this.amount = amount;
this.currency = currency;
this.sum = function (money){
return new Money(200, "USD");
}
}
Run Code Online (Sandbox Code Playgroud)
并尝试比较new Money(200, "USD")
和和的结果,这些内置的匹配器将无法按预期工作.我已经设法基于自定义equals
方法和自定义匹配器实现了一种解决方法,但它似乎很有效.
比较Jasmine中对象的标准方法是什么?
什么用于node.js的BDD和TDD?
我习惯使用Cucumber + RSpec.node.js有什么好的组合?
谢谢