Тест Мокко. Время 2000 мс - PullRequest
0 голосов
/ 04 июня 2018

Что я делаю не так? Я пытаюсь сохранить телефоны в моей базе данных, но Мокко говорит, что превышено время ожидания 2000 мс.Моя телефонная схема

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const phoneSchema = new Schema({
    company: String,
    modelname: String,
    numbername: String,
    picture: String,
    price: String,
});

const Phone = mongoose.model('phone', phoneSchema);

module.exports = Phone;

и мой тестовый файл:

    const mocha = require('mocha');
const assert = require('assert');
const Phone = require('../models/phone-model');


//describe tests
describe('Saving records', function(){
    //create tests
    it('Saves phone to the db',function(done){

        var phone1 = new Phone({
            company: "Samsung",
            modelname: "Galaxy",
            numbername: "S5",
            picture: "https://drop.ndtv.com/TECH/product_database/images/2252014124325AM_635_samsung_galaxy_s5.jpeg",
            price: "12500P"
        });

        phone1.save().then(function(){
            assert(phone1.isNew === false);
            done(); 
        });

    });

});

Я не понимаю, что я делаю здесь не так ... до меня это всегда срабатывало.Ошибка: превышено время ожидания 2000 мс.Для асинхронных тестов и хуков убедитесь, что вызывается «done ()»;если вы возвращаете обещание, убедитесь, что оно разрешено.(C: \ Users \ User \ Desktop \ OAuth \ Test \ phone_test.js)

1 Ответ

0 голосов
/ 04 июня 2018

Как уже говорилось в комментариях, вы вызываете done только в том случае, если обещание из метода save разрешается, что означает, что ваш тест истечет, если ваша база данных отправит ответ об ошибке.

Поскольку выВы имеете дело с обещаниями, попробуйте использовать встроенную поддержку обещаний от mocha вместо обратного вызова done:

const mocha = require('mocha');
const assert = require('assert');
const Phone = require('../models/phone-model');

describe('Saving records', function(){
    // Note there is no `done` argument here
    it('Saves phone to the db',function(){

        var phone1 = new Phone({
            company: "Samsung",
            modelname: "Galaxy",
            numbername: "S5",
            picture: "https://drop.ndtv.com/TECH/product_database/images/2252014124325AM_635_samsung_galaxy_s5.jpeg",
            price: "12500P"
        });

        // Note returning the promise here...
        return phone1.save().then(function(){
            assert(phone1.isNew === false);
        });

    });

});

Дайте нам знать, что вы увидите после этого.Надеюсь, вы увидите реальное сообщение об ошибке, которое поможет вам отследить проблему.Ваша БД также вполне может занять более 2000 мсек, чтобы ответить, хотя это более вероятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...