Articles of bdd

摩卡bdd风格testing命名

我正在使用Mocha作为testing我的node.js项目的testing框架。 我想遵循BDD风格来组织我的testing/规格。 我曾经写过一些使用黄瓜的testing,它使用了BDD风格,就像给定when-then子句一样 。 但对于摩卡来说,它使用不同的语言来描述规格。 您可以使用嵌套的描述语句来描述规范。 我想知道命名Mochatesting的最佳做法是什么。 谢谢。

为什么这些柴testing不会失败?

我们有一个简单的“这是真正的工作”使用Spectron和WebdriverIO一个电子应用程序的柴testing。 我们开始的示例代码是从 https://github.com/jwood803/ElectronSpectronDemo报告在https://github.com/jwood803/ElectronSpectronDemo/issues/2中 ,chai-as-promisedtesting不捕获不匹配,所以我想我会添加一些额外的testing,以找出为什么柴是不是失败的testing电子应用程序的文本不符合预期的unit testing文本。 让我们从简单的东西开始,其余的代码在https://github.com/drjasonharrison/ElectronSpectronDemo describe('Test Example', function () { beforeEach(function (done) { app.start().then(function() { done(); } ); }); afterEach(function (done) { app.stop().then(function() { done(); }); }); it('yes == no should fail', function () { chai.expect("yes").to.equal("no"); }); it('yes == yes should succeed', function () { chai.expect("yes").to.equal("yes"); }); 第一次unit testing失败,第二次成功。 而当我们把这个断言放到一个函数中时,它仍能检测到这个失败: it('should fail, but succeeds!?', […]

使用黄瓜来testing一个不用rails写的API

我正在编写一个使用非rails框架的API。 我通常使用Cucumber作为BDD,并在我写入RAILS时testingAPI。 当我testing一个写在node.js(或任何其他框架,顶部)上的API时,有没有强烈的理由不使用Cucumber? 强烈的技术原因不这样做可能包括: 黄瓜对铁路的依赖性 node.js存在一个更好的框架 我不知道的其他一些技术原因。

为Node.js服务器+ SPA javascript框架设置自动化BDDtesting环境的简单方法?

这是我的项目的设置: 前端:Angular.js / Backbone.js SPA应用程序 后端:Node.js + NoSQL数据库作为后端 testing: 已经有Karma成立SPAtesting(模拟JSON响应) 已经为Node.js设置了Mocha,并为testing数据库设置和拆卸提供了一个独立的“testing”环境 现在,当我尝试设置集成BDDtesting(即启动节点服务器,启动浏览器并在浏览器内部运行SPAtesting,实际JSON调用到后端)时,问题就出现了。 经过一番search,我找不到一个简单明了的解决scheme,所以我想我会在这里问,所以处于类似情况的其他人也可以从中得到答案。 谢谢!

茉莉花testing用例不从mongo保存返回

我使用https://github.com/mhevery/jasmine-node来testing我的nodejs服务器路由。 我的mongoose模型有一个工作前置function如下 userSchema.pre('save', function(next) { var user = this; if (!user.isModified('password')) return next(); bcrypt.genSalt(10, function(err, salt) { if (err) return next(err); logger.info('Hashing password!!!'); bcrypt.hash(user.password, salt, null, function(err, hash) { if (err) return next(err); user.password = hash; next(); }); }); }); 现在我需要在jasmine中编写一个testing用例,创build一个userSchema对象并将其保存到mongodb中,以便在testing用例中进一步使用它。 var User = require("../../../../models/User"); it("{postLogin – invalid}", function(done) { var user = new User({email: […]

在jasmine规范中使用module.exports

我想在testing的js中使用module.exports,并使用require()将其包含到指定脚本中。 cat.js – 文件与我想导出的对象 var cat = { name: "filemon", meow: function () { return "miau"; }, walk: function () { return "siup siup siup"; } } module.exports = cat catTest.js – 猫的规范 var cat = require('../app/cat') describe("Cat test", function () { it("cat should meow with miau", function () { expect(cat.meow()).toBe("miau") }) }) 当我使用jasmine CLI(用npm下载)运行testing时,testing通过: […]

Node.js和coffeescript – testing与摩卡和僵尸的应用程序

我试图testing一个node.js webapp我已经开始与摩卡和僵尸工作。 但是还有一些事情我还是不明白,希望得到一些帮助。 请注意,我正在使用快递 假设我正在testing用户authentication。 显然有两个部分:1 – 用户界面2 – 行为,涉及控制器和模型所以,我决定分开这两个部分。 对于用户界面,我决定使用僵尸。 以下链接包含我为用户authentication编写的UItesting: https : //gist.github.com/7e45d6884ce2d32e933d基本上,我的用户authentication表单包含用户名和密码input字段以及loginbutton。 我对四种情况感兴趣:至less有一个input字段是空的,而且两个都是由用户提供的。 虽然现在四次testing都通过了,但是我仍然不相信他们是正确的testing,或者是否足够或者做了正确的事情。 你们(BDD专家)认为什么? 谢谢José

MakeFile使用NPM运行Mochatesting

我正在尝试创build一个MakeFile来运行与NPM的摩卡unit testing。 所以我安装了摩卡,并在下面创build了一个unit testing: {} project_root /test/test.js 现在,当我尝试“做testing”与答复: make:“testing”没有什么可做的。 这是我的MakeFile: test: @./node_modules/.bin/mocha -u tdd .PHONY: test 所以真正的基本。 我读过摩卡将自动运行“testing”目录中的所有testing。 我的MakeFile语法不正确吗? 谢谢!

在Node.js中进行DRYtesting

我已经写了一个Node.js CLI,并希望进一步的开发以TDD风格进行。 我有一个理想的工作stream程,想知道现有的框架是否可行。 当我编写一个新的函数时,我想在一个断言中logging它的前提条件,如果input没有被validation,将会抛出一个错误。 后置条件应在function中或附近指定 前置条件和后置条件应该生成用npm test运行的npm test 断言只能在开发模式下检查 每个函数中的文档都应该为CLI生成(html | md)文档 如果我想添加除前置条件/​​后置条件/不变testing之外的testing,应该很容易 当嘲笑testing时,应该有一种方法来指定“之前的宇宙”和“之后的宇宙”。 例如,为了testing支持新项目的命令,我应该能够将初始目录结构指定为空({}),并将最终目录结构指定为表示结果的JSON对象({name:“project “,path:”/项目“,types:”目录“,儿童:{…}})< – 或类似的东西。 这似乎需要拦截写入文件系统的能力。 我还没有自动化testing生成的候选库。 我认为Mocha , rewire和Contractual / Obligations可能适用于其他任何事情,但是我有兴趣了解其他方法。

当摩卡testing失败时,它将一个对象logging到控制台

当我所有的testing通过,一切都按预期工作。 然而,当一个testing失败并且任何记者处于活跃状态时,赛跑者都会打印出一个代表追踪痕迹的对象,而不是我在屏幕截图中看到的格式不正确的错误消息 > mocha –reporter spec –ui bdd –ignore-leaks Site Routes GET /sites ✓ should return a 200 OK ✓ should be a JSON response ◦ should be an array: { "date": "Fri Apr 19 2013 16:09:20 GMT-0400 (EDT)", "process": { "pid": 34270, "uid": 1032026306, "gid": 116266774, "cwd": "/Users/squinn/Projects/armada", "execPath": "/usr/local/Cellar/node/0.10.4/bin/node", "version": "v0.10.4", "argv": [ […]