【问题标题】:Unit test a javascript function in an angular service using jasmine [duplicate]使用茉莉花在角度服务中对javascript函数进行单元测试[重复]
【发布时间】:2016-09-28 12:24:28
【问题描述】:

使用 jasmine 在 Angular 服务中对 javascript 函数进行单元测试

这是我的角度服务:

angular.module("app.services").service("validationService", ["$q", function ($q) {

        this.validate = function (filter): ng.IPromise<any> {
            let defer = $q.defer();

            defer.resolve(validateOrder(filter.valA, filter.valB);

            return defer.promise;
        };

        function validateOrder = (valueA, valueB) {
            return valueA > valueB;
        };
    }]);

这是我当前的单元测试:

"use strict";

describe("Service: validationService -> ", function () {
    // load the service"s module
    beforeEach(module("app.services"));

    var validationService;

    beforeEach(inject(function ($injector) {
        validationService = $injector.get("validationService");
    }));

    it("should call validateOrder and return false", function() {
        // Arrange
        var filter = {"valA": 10, "valB": 100};

        // Act and Assert
        expect(validationService.validateOrder(filter.valA, filter.valB)).toEqual(false);
    });

});

我想在将其转换为 this.validateOrder 函数时测试名为“validateOrder”的函数。

在将其保留为函数的同时,我将如何做到这一点?

【问题讨论】:

    标签: javascript angularjs unit-testing jasmine


    【解决方案1】:

    我认为你不能在不暴露私有函数的情况下测试它们。您测试的公共函数(作用域上的函数)应该实习生测试私有函数。

    How to test 'private' functions in an angular service with Karma and Jasmine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2016-06-14
      • 2017-10-09
      • 1970-01-01
      • 2017-05-02
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多