【发布时间】:2017-12-09 21:01:45
【问题描述】:
我正在创建一个单元测试,该测试包括使用 twitter API 来获取任何个人资料的数据(名称、推文数量、关注者、注册日期等)。关键是我正在使用 Mocha 库来执行此任务,但我遇到了问题,即在执行断言时,twitter 请求需要超过 2 秒(Mocha 的默认超时),因此我的测试总是失败。有人可以帮我一把吗?怎么办,这样才能在接收到twitter请求的所有数据后执行assert的比较?
code.js
class extractCode {
verificarUsername(a) {
if (a) {
var nombre;
var Twitter = require('twitter');
var client = new Twitter({
consumer_key: 'XSpj4nEB5IOLgIvyZXiDAhBLt',
consumer_secret: 'dPjYUTih6n0ynt1y9C7bE0g0gyx6KSJgrGTeDEa3yH5flsdJPL',
access_token_key: '900532686-4sOwDfOFZm1fKmtZZhSMPH04REXMjqnugTOn3o1j',
access_token_secret: 'ghNtHt7VyjwNHXvXnZM5hFKaDH62bX7LEFqUBZ9SSb5Lg'
});
client.get('users/show', {screen_name: a}, function(error, response) {
if(error) throw error;
if(response.name) {
nombre = true
} else {
nombre = false
};
console.log(`
Nombre: '${response.name}'
ID: ${response.id_str}
Localidad: ${response.location}
Descripción del perfil: ${response.description}
Seguidores: ${response.followers_count}
Sigue a: ${response.friends_count}
Perfil creado el: ${response.created_at}\n`);
});
return nombre;
}
}
}
module.exports = extractCode;
测试/prueba.js
var assert = require('assert');
var extractCode = require('../code.js');
describe('Pruebas de perfil de Twitter', function() {
this.timeout(5000);
var c = new extractCode();
it('Verifica si se le pasó un username válido', function(done) {
assert.equal(c.verificarUsername('pedrofumero'),true, 'El username proporcionado no es válido');
done();
})
})
【问题讨论】: