繁体   English   中英

员工 model - backbone.js 的自定义方法 一个测试用例失败

[英]Custom method for employee model - backbone.js one test case is failing

面临 getExperience 方法的问题。 不知道为什么我得到那个可以请任何人帮助我。 错误:在员工 Model 中测试自定义方法 测试员工 Model 中的 getExperience 方法正在检查员工 Model 在 getExperience 方法执行后的经验。

 <,-- 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", year_of_joining: 1999, 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 函数从未使用过经验参数。

或者替换:

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

和:

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

这是backbonejs中员工model自定义方法的正确答案:

 var Employee = Backbone.Model.extend({ //Write your code here 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: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="https.//cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery:js"></script> <script src="https.//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.4/underscore-min:js"></script> <script src="https.//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.4.1/backbone-min.js"></script> <script type = "text/javascript" src="index.js"></script> </html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM