这是我要测试的服务。我要测试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)这两个条件下测试都成功了
因此,任何人都可以解决此问题