使用Node.js+;火基
是否存在使用Node.js和Firebase进行正确端到端测试的单一在线示例 我将“适当”定义为:使用Node.js+;火基,node.js,testing,firebase,Node.js,Testing,Firebase,是否存在使用Node.js和Firebase进行正确端到端测试的单一在线示例 我将“适当”定义为: 测试在不同于dev或prod的Firebase实例上运行 测试数据库在每次测试之前都会被清除 Firebase连接是持久性的(即,一旦连接,脚本将永远运行),因此端到端测试Firebase代码非常棘手。答案补充了一些细节。我以两种方式测试了Firebase交互: 在Firebase指向某些测试引用(而不是生产数据)的情况下运行应用程序,并针对其编写一些测试。这种方式更难遵循TDD,因为您将在编写
- 测试在不同于dev或prod的Firebase实例上运行
- 测试数据库在每次测试之前都会被清除
var Firebase = require('firebase');
var ref = new Firebase('https://<your-app>.firebaseio.com/testUsers');
ref.set({user1: {name: 'Mike'}}, function(err){
if (err){
process.exit(1);
} else{
ref.child('user1').remove(function(err){
if (err){
process.exit(1);
}
process.exit(0);
});
}
});
此测试依赖于子进程的退出代码。我不认为这是一个最佳实践,但希望它能告诉你一些问题
var test = require('tape');
var exec = require('child_process').exec;
test('firebase', function(t){
t.plan(1);
exec('node ./mock-user.js', {timeout: 5000}, function(err, stdout, stderr){
t.ok(err === null, 'firebase user created and destroyed');
});
});