简体   繁体   English

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

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

Facing issue with the getExperience Method.面临 getExperience 方法的问题。 dont know why im getting that could anyone please help me in this.不知道为什么我得到那个可以请任何人帮助我。 Error: Testing Custom Method in Employee Model Testing getExperience method of Employee Model Checking experience in Employee Model after getExperience method execution FAILED Expected 0 to be 21.错误:在员工 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>

You never set new value for experience attribute of your model.您永远不会为模型的experience属性设置新值。 As it is for your test to pass you should use: expect(employee.getExperience()).toBe(calculated_exp);为了让您的测试通过,您应该使用: expect(employee.getExperience()).toBe(calculated_exp);

Note the experience argument is never used by your getExperience function.请注意,您的 getExperience 函数从未使用过经验参数。

Or replace:或者替换:

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

with:和:

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

Here is correct answer for custom method for employee model in backbonejs:这是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