簡體   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