是否存在使用Node.js和Firebase进行正确端到端测试的在线示例?
我定义"正确"为:
答案 0 :(得分:0)
Firebase连接是持久的(即一旦连接,您的脚本将永久运行),因此端到端测试Firebase代码非常棘手。 This回答在那里添加了一些细节。我已经通过两种方式测试了Firebase交互:
使用Firebase运行您的应用程序,指向一些测试引用(而不是您的生产数据)并针对它编写一些测试。以这种方式跟踪TDD更加困难,因为您在编写应用程序后将编写这些测试。
子进程可能很有用,但是很狡猾(请谨慎行事):
模拟user.js的
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);
});
}
});
test.js
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');
});
});
此测试依赖于子进程的退出代码。我不认为这会被认为是一种最佳做法,但希望它会稍微提出您的问题。