Тест не пройден - ProductService не является конструктором - PullRequest
0 голосов
/ 07 июля 2019

Я использую "chai": "^4.2.0", и "mocha": "^4.0.1".Я использую node --version, v10.15.3 Моя цель - проверить уровень обслуживания:

Мой ProductService.js выглядит следующим образом:

class ProductService {

    constructor() {
        // constructor
    }

    async createOrUpdateProduct(dataArray) {
        return "done"
    }
}

module.exports = {
    ProductService
};

Мой тестовый класс ProductTestService.jsвыглядит следующим образом:

const assert = require('chai').assert;

const ProductService = require('../Service/ProductService')


describe('Product model', () => {

    it('should add the test data with the Products Service to the Product table', async () => {
        let dataArr = "product data"
        let productServ = new ProductService()

        const res = await productServ.createOrUpdateProduct(dataArr)
        assert.isOk(res.length, dataArr.length);
    });

});

При выполнении тестов, я получаю:

enter image description here

Любые предложения, почему экземпляр неработа?

Я ценю ваши ответы!

1 Ответ

1 голос
/ 07 июля 2019

Код

module.exports = {
    ProductService
};

Сокращено для

module.exports = {
    ProductService: ProductService
};

. Это означает, что при импорте модуля с

const ProductService = require('../Service/ProductService');

Значение ProductService это именно то, что вы экспортировали, то есть объект со свойством ProductService.

{
    ProductService: ProductService
}

Чтобы исправить вашу проблему, либо экспортируйте класс напрямую, если это единственное, что вы хотите экспортировать из модуля

module.exports = ProductService;

Или импортируйте, используя деструктуризацию объектов, если вы также хотите экспортировать другие вещи

const { ProductService } = require('../Service/ProductService');
...