0
단위 테스트를 만들고 있는데,이 테스트는 프로필 (이름, 트윗 수, 추종자 수, 등록 날짜 등)의 데이터를 얻는 twitter API를 사용하여 구성됩니다. . 요점은이 작업을 위해 Mocha 라이브러리를 사용하고 있지만 문제가 발생하여 트위터 요청이 2 초 (모카의 기본 시간 제한)가 걸리므로 테스트가 항상 실패합니다. 누군가가 내게 손을 줄 수 있습니까? 트위터에 대한 요청의 모든 데이터를받은 후에 주장의 비교가 실행되도록하려면 어떻게해야합니까?모카 (Mocha)를 이용한 단위 테스트, 작동하지 못합니다.
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();
})
})
약속 코드를 재 작성 기본적인 접근 방법이다 기본적으로 2 초 변경합니다. mocha timeout? –
@pedroFumero 'this.timeout (5000);에서했던 것처럼 mocha는 비동기 테스트에서'done()'호출을 기대하지 않으면 정의한 타임 아웃을 존중합니다. 시간 초과를 올릴 필요는 없습니다. – Gntem