Как провести модульное тестирование следующей функции в жасмине?

0
I have a following code:

    angular
        .module('testApp')
        .factory('testDataService', function ($http) {
            function testDataService(){
                var self = this;
                self.test = function(){
                    //do something
                }

                self.test1 = function(){
                    // do something                
}
            }

            return new testDataService();

When I try to write a test case like 

    beforeEach(function(){
        new testDataService();
    });

It gives some error like:

> TypeError: '[object Object]' is not a constructor (evaluating 'new testDataService()')

Существует множество функций, таких как "test", "test1" и т.д. Внутри testDataService. Я не могу проверить остальные функции, потому что область внешней функции недоступна. Я не могу получить экземпляр из-за "var self = this" Пожалуйста, помогите.

Теги:
jasmine

2 ответа

1
Лучший ответ

Для создания объекта нет необходимости в новом операторе.

Пожалуйста, проверьте этот

describe("\n\Testing factory", function () {
        var factTestDataService;

        beforeEach(inject(function (testDataService) {
           factTestDataService= testDataService;
        }))


        it("factTestDataService test to defined",function(){

            expect(factTestDataService.test()).toBeDefined()
        })
        it("factTestDataService test1 to defined",function(){

            expect(factTestDataService.test1()).toBeDefined()
        })

         it("factTestDataService to defined",function(){

            expect(factTestDataService).toBeDefined()
        })          
    });

Вам нужно ввести фабрику testDataService и сохранить ее в локальном var.

Затем вы можете использовать этот метод для доступа к методу, определенному на этом заводе, как и в угловом режиме, и можете проверить его с помощью другого метода теста Jasmine.

  • 0
    Большое спасибо :) Это работает !!!!
0

Ваш завод уже возвращает новый экземпляр testDataService. Там нет необходимости вызывать new. Когда вы пытаетесь вызвать new на экземпляре, он выдает ошибку, которую вы видите.

  • 0
    Пожалуйста, прочитайте редактирование. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню