如何为Controller编写测试用例?

时间:2016-04-12 09:00:22

标签: angularjs unit-testing

我是单元测试的新手。

请帮我编写以下代码的测试用例代码:

 $scope.convertToInt = function (str) {
                if (!isNumberEmpty(str) && !isNaN(str)) {
                    return parseInt(str, 10);
                }
                return "";
            }

我试过这样,但不能这样做。

describe('ConfigurationTestController', function() {

  beforeEach(module('usp.configuration')); 

  describe('ConfigurationController', function () {
        beforeEach(inject(function ($rootScope, $controller) {
            scope = $rootScope.$new();
            controller = $controller('ConfigurationController', {
                '$scope': scope
            });
        }));
    });
});

请告诉我怎么写.......

1 个答案:

答案 0 :(得分:1)

您需要稍微修改一下代码。您不需要在测试用例中使用describe两次。

(function() {

    "use strict";

    describe("test suite for Configuration test controller", function() {

        var scope = null;
        beforeEach(module("usp.configuration"));
        beforeEach(inject(function($rootScope, $controller) {
            scope = $rootScope.$new();
            $controller("ConfigurationController", {
                $scope: scope
            });
        }));

        it("should convert to int", function() {
            expect(scope.convertToInt("2")).to.equal(2);
        });

        it("should return empty string", function() {
            expect(scope.convertToInt("asd")).to.equal("");
        });
    });

}());