微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

员工模型的自定义方法-bone.js一个测试用例失败

如何解决员工模型的自定义方法-bone.js一个测试用例失败

getExperience方法遇到的问题。不知道为什么即时通讯可以在这方面帮助我。 错误: 在员工模型中测试自定义方法测试员工模型的getExperience方法在执行getExperience方法执行失败后检查员工模型中的经验失败预期0为21。

<!-- Test Case-->

  it('Checking experience in Employee Model after getExperience method execution',function() {
            var current_date = new Date();
            var current_year= current_date.getFullYear();
            var calculated_exp= current_year-1999;
              employee.getExperience(employee.get('year_of_joining'));
              expect(employee.get('experience')).toBe(calculated_exp);
          });
var Employee = Backbone.Model.extend({
 //Write your code here
 getExperience: function(experience) {
       var year_of_joining=employee.get('year_of_joining');
        var current_date = new Date();
            var current_year= current_date.getFullYear();
            var calculated_exp= (current_year)-(year_of_joining);
            return calculated_exp;
    }
});
var   employee = new Employee({
        employee_id:1111,name:'Sarah Roe',year_of_joining:1999,address:'ABC Street',experience:0
    });
    alert("Experience of "+employee.get("name")+" is "+employee.getExperience(employee.get('year_of_joining'))+" years");;
 <!-- Hmtl -->
<html>    
<head>    
</head>    
<body>    
<div id="app"></div



<script src="lib/jquery/dist/jquery.js"></script>
<script src="lib/underscore/underscore.js"></script>
<script src="lib/backbone/backbone.js"></script>  
<script  type = "text/javascript"  src="index.js"></script>

</html> 

解决方法

<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"></script>
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

<script>
// JS with example of setting experience value being set third Example
// JavaScript
var Employee = Backbone.Model.extend({
  //Write your code here

  default: {
    employee_id: 1111,name: 'Sarah Roe',year_of_joining: 1999,address: 'ABC Street',experience: null
  },getExperience: function(year_of_joining) {
    var current_date = new Date();
    var current_year = current_date.getFullYear();
    var calculated_exp = (current_year) - (year_of_joining);

    this.set({
      experience: calculated_exp
    });
    return calculated_exp;
  }

});


var employee = new Employee({
  employee_id: 721,name: "Shrikrishna",experience: 22
});
//please add properties and values of Employee model
//employee.set({'experience': employee.get('year_of_joining')}) ;
alert("Experience of " + employee.get("name") + " is " + employee.getExperience(employee.get('year_of_joining')) + " years");
</script>
<div id="container">Loading...</div>

,

您永远不会为模型的experience属性设置新值。由于要通过测试,因此您应该使用: expect(employee.getExperience()).toBe(calculated_exp);

请注意,您的getExperience函数永远不会使用experience参数。

或替换:

employee.getExperience(employee.get('year_of_joining'));

具有:

employee.set('experience',employee.getExperience());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。