2014-09-06 26 views
5

Có vẻ như store không có trong các bài kiểm tra Ember của tôi, cho dù trong ngữ cảnh của ObjectController hoặc trong bất kỳ bài kiểm tra đơn vị nào. kiểm tra đơn vị của tôi:Thử nghiệm Ember: Không thể đọc thuộc tính 'createRecord' của null

`import {test, moduleFor} from "ember-qunit"` 
`import DS from "ember-data"` 

moduleFor "controller:register", "RegisterController", { 
} 

test "store is working", -> 
    expect 1 
    controller = @subject() 
    Ember.run(-> 
     sampleUser = controller.get("store").createRecord("user", { 
      username: "myuser" 
      password: "otherpassword" 
     }) 
     ok(sampleUser instanceof DS.Model) 
    ) 

thử nghiệm sẽ cung cấp cho:

Chết trên thử nghiệm # 1 tại kiểm tra (http://localhost:4200/assets/vendor.js:73539:13) tại eval (ứng dụng/kiểm tra/đơn vị/controllers/đăng ký-test.js : 19: 5) tại requireModule (http://localhost:4200/assets/vendor.js:54:29) tại http://localhost:4200/assets/test-loader.js:14:29: không thể đọc thuộc 'createRecord' null

thể bất cứ ai giải thích w Tôi không thể truy cập các tính năng DS từ một trong các thử nghiệm của tôi hoặc từ bên trong chính bộ điều khiển (khi chạy thử nghiệm)?

+0

Bạn có thể tạo một phiên bản của cửa hàng theo cách thủ công, sau đó thêm/thêm điều đó vào bộ điều khiển của bạn (đang thử nghiệm) để xác minh điều này hoạt động như bạn mong đợi không? –

Trả lời

1

Bởi vì ember-qunit không tiêm các cửa hàng vào bộ điều khiển của bạn, nó có nghĩa là cho các bài kiểm tra đơn vị, không phải thử nghiệm tích hợp. Và cửa hàng của Ember Data nằm ngoài phạm vi của bộ điều khiển đó.

+0

Ok, sau đó làm cách nào để khắc phục? – user1429980

+0

Bạn đang cố gắng kiểm tra điều gì ở đây? Dữ liệu Ember? Tôi sẽ thêm các bài kiểm tra đơn vị vào khung của Ember Data thay vì trong khung của bạn. Nó giống như kiểm tra jQuery. – Kingpin2k

+0

https://github.com/emberjs/data/blob/master/packages/ember-data/tests/unit/store/create_record_test.js – Kingpin2k

0

Bạn có thể thêm cửa hàng dữ liệu ember vào phần "nhu cầu" của thử nghiệm đơn vị. Bạn cũng sẽ cần phải thêm bất kỳ mô hình được tạo ra để các "nhu cầu" phần như sau:

needs: ['service:store', 'model:user'] 

này sẽ bơm một ví dụ thực tế của các cửa hàng vào đối tượng (điều khiển, thành phần, tuyến đường, vv) đang được thử nghiệm .

Các vấn đề liên quan