Tôi mới để thử nghiệm đơn vị và cố gắng nắm bắt mọi thứ. Tôi đang cố hết sức để làm theo hướng dẫn này: http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html#testing-filters. Trong ứng dụng AngularJS của tôi, tôi có một bộ lọc mà tôi cần kiểm tra. Tôi có Node, Testacular, và Jasmine được thiết lập và chạy đúng cách. Bộ lọc mà tôi đang cố kiểm tra khá đơn giản:Kiểm tra bộ lọc hiện diện trong Angular
myApp.filter('bill_ship', function() {
return function (userData) {
var output = "---";
switch (userData) {
case "0":
output = "Billing";
break;
case "1":
output = "Shipping";
break;
}
return output;
}
});
Tôi nghĩ rằng tôi đã thiết lập thử nghiệm đúng cách, nhưng nó luôn thất bại.
describe("Unit Testing: Filters - ", function() {
beforeEach(angular.mock.module('prismApp', ['bill_ship']));
//BillShip Filter
it('should have a bill-ship filter: ', inject(function($filter){
expect($filter('bill_ship')).not.toEqual(null);
}));
});
Không thành công với thông báo này: Lỗi: Đối số 'fn' không phải là hàm, có chuỗi từ bill_ship.
Vậy ... tôi đang làm điều này sai ở đâu?
Có phải 'bill_ship' cũng là tên của mô-đun mà bộ lọc' bill_ship' đang ở? Nếu bộ lọc nằm trong module 'prismApp', bạn không nên chuyển' ['bill_ship'] 'làm tham số thứ hai cho' angular.mock.module'. –
Ứng dụng Góc nằm trong một tệp riêng biệt từ bộ lọc: var myApp = angular.module ("prismApp", []); Bộ lọc được khai báo chính xác như được hiển thị. Nếu tôi bỏ qua tham số thứ hai, nó rên rỉ với tôi về một nhà cung cấp không xác định: Lỗi: Nhà cung cấp không xác định: bill_shipFilterProvider <- bill_shipFilter – MBielski
Bạn có thể thử sử dụng 'beforeEach (module ('prismApp'));' thay thế? Đây là cách chúng ta có beforeEach cho các phép kiểm tra bộ lọc chạy chính xác của chúng ta - hàm 'it (...' có vẻ chính xác. –