根據我的經驗,只需簡單地在本地主機上運行redis即可運行測試,而不是處理kue的模擬版本。
首先,以確保KUE是空的每個測試,才能夠作爲沖洗Redis的,例如作爲簡單:
var kue = require('kue');
var queue = kue.createQueue();
queue.client.flushdb(function(err) {});
#1,KUE有應解決您的問題rangeByType()方法:
var getJobs = function(type, state, cb) {
kue.Job.rangeByType(type, state, 0, -1, 'asc', cb);
}
// After something happens
getJobs('myJobType', 'active', function(err, jobs) {});
#2,您可以用同樣的方法,只是保持作業ID的軌道知道它已經被替換:
var jobId;
getJobs('myJobType', 'active', function(err, jobs) {
assert.lengthOf(jobs, 1);
jobId = jobs[0].id;
});
// After the thing happens
getJobs('myJobType', 'active' function(err, jobs) {
assert.lengthOf(jobs, 1);
assert.notEqual(jobId, jobs[0].id);
});
而且如果你需要查詢的ID的工作,你能做到這一點,像這樣:
kue.Job.get(jobId, function(err, job) {});