如何解决员工模型的自定义方法-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 举报,一经查实,本站将立刻删除。