使用Karma Jasmine进行单元测试

时间:2018-11-15 06:46:16

标签: angularjs unit-testing jasmine karma-jasmine

这是我要测试的服务。我要测试validateEmailService()函数

 'use strict';

 angular.module('bahmni.registration')
   .factory('emailService',['$http',function ($http) {

    var validateEmailService=function (validateEmailUrl,validateEmailParameters,email) {
        var url=validateEmailUrl +'?';
        angular.forEach(validateEmailParameters,function (value,key) {
            url=url +key +'='+ value.parameter +'&';
        });
        url=url+'email='+email;
        return $http.get(url).then(function (value) {
            var result = value;
            var smtpCheck = result.data.smtp_check;
            var mxRecordsCheck = result.data.mx_found;
            if (smtpCheck === true && mxRecordsCheck === true){
                return true;
            }
            return false;
        });
    };
    var sendEmailService=function (sendEmailApiUrl,emailData,config,email,firstName,lastName) {
        emailData = JSON.stringify(emailData);
        emailData = emailData.replace("%%Email%%", email);
        emailData = emailData.replace("%%FirstName%%", firstName);
        emailData = emailData.replace("%%LastName%%", lastName);
        emailData = JSON.parse(emailData);
        $http.post(sendEmailApiUrl, emailData, config);
    };
    return {
        validateEmailService: validateEmailService,
        sendEmailService: sendEmailService
    };
}]);

这是我的测试

   'use strict';

describe("emailService",function(){
var factory;
beforeEach(function(){
    module('bahmni.registration');

    inject(function($injector){
        factory=$injector.get('emailService');
    });
});
    describe("validateEmailService",function(){
        var url='https://apilayer.net/api/check';
        var parameter={
                access_key : {parameter:"040a5440233f1d1245a8f75b583438fe"},
                smtp: {parameter:1}
};
        var email='tanmay.mv2@gmail.com';
        module(function($provide) {
        $provide.service('emailService', function() {
        this.validateEmailService = jasmine.createSpy('validateEmailService').andCallFake(function(url,parameter,email) {
            it("Should be a valid email ID",function($http){
                expect(factory.validateEmailService(url,parameter,email)).toEqual(true);
                });
        });
    });
    });

}); });

现在的问题是,在.toEqual(true)和.toEqual(false)这两个条件下测试都成功了

因此,任何人都可以解决此问题

0 个答案:

没有答案