2012-09-04 42 views
10

Vì vậy, tôi đang chơi xung quanh với BDD và mocha với dự án express.js của tôi. Tôi chỉ mới bắt đầu vì vậy đây là những gì tôi có là trường hợp thử nghiệm đầu tiên của tôi:Yêu cầu tệp js bên ngoài để thử nghiệm mocha

should = require "should" 
require "../lib/models/skill.js" 


describe 'Skill', -> 
    describe '#constructor()', -> 
     it 'should return an instance of class skill', -> 
      testSkill = new Skill "iOS", "4 years", 100 
      testSkill.constructor.name.should.equal 'Skill' 

(cũng coffeescript này tạo ra một số js tìm lẻ vì nó chèn trở về tuyên bố mới nhất .. đây là cách chính xác để thiết lập a thử nghiệm với coffeescript)

Bây giờ khi tôi chạy mocha tôi nhận được lỗi này:

1) Skill #constructor() should return an instance of class skill: 
    ReferenceError: Skill is not defined 

Mà tôi cho rằng phương tiện skill.js đã không được nhập một cách chính xác. Lớp kỹ năng của tôi rất đơn giản vào thời điểm này, chỉ là một người xây dựng:

class Skill 
    constructor: (@name,@years,@width) -> 

Làm cách nào để nhập các mô hình của mình để kiểm tra mocha của tôi có thể truy cập chúng?

Trả lời

8

Bạn cần phải xuất khẩu lớp kỹ năng của bạn như thế này:

class Skill 
    constructor: (@name,@years,@width) -> 

module.exports = Skill 

Và gán nó vào biến trong thử nghiệm của bạn:

should = require "should" 
Skill = require "../lib/models/skill.js" 


describe 'Skill', -> 
    describe '#constructor()', -> 
     it 'should return an instance of class skill', -> 
      testSkill = new Skill "iOS", "4 years", 100 
      testSkill.constructor.name.should.equal 'Skill' 
0

nếu skill.js nằm trong cùng một đường dẫn của mã thử nghiệm của bạn, hãy thử điều này.

require "./skill.js" 
Các vấn đề liên quan