đây là một số ngữ cảnh. Tôi đang làm việc trên một dự án sử dụng React và Immutable.js, được viết bằng ES6. Tôi sử dụng Babel và webpack.Kiểm tra Mocha sử dụng Immutable.js không thành công khi được chạy với Karma
Tôi đã viết một số bài kiểm tra đơn vị bằng cách sử dụng Mocha, Chai và jsdom để chúng có thể được thực thi bên ngoài trình duyệt.
Vấn đề là một số thành phần đang sử dụng những thứ như yêu cầu hình ảnh. Công cụ này được xử lý bởi webpack thông qua trình tải cụ thể.
Vì vậy, khi chạy các thử nghiệm trong thiết bị đầu cuối, chúng không thành công do những yêu cầu không được phép này.
Tôi tìm cách khắc phục điều này bằng cách sử dụng Karma (để lại khả năng chạy thử nghiệm bên ngoài trình duyệt) và biên dịch các nguồn trước khi chạy thử nghiệm và làm cho nó cấu hình webpack chỉ bỏ qua trình tải ảnh (sử dụng null- bộ nạp). Tại thời điểm đó, các bài kiểm tra đang chạy qua Karma nhưng một số trong số họ đang thất bại trong khi họ đang đi qua khi họ được chạy qua thiết bị đầu cuối (tôi đã nhận xét các dòng có yêu cầu công cụ, chỉ cho mục đích của bài kiểm tra).
Kiểm tra không thành công đều liên quan đến Immutable.js có nghĩa là tôi đang cố kiểm tra sự bình đẳng của hai đối tượng không thể thay đổi.
Dưới đây là một dụ của một thử nghiệm:
it('handles SET_STATE',() => {
const initialState = Map();
const action = {
type : 'SET_STATE',
state : Map({
vote : Map({
pair : List.of('Trainspotting', '28 Days Later'),
tally : Map({ 'Trainspotting' : 1 })
})
})
};
const nextState = reducer(initialState, action);
expect(nextState).to.equal(fromJS({
vote: {
pair: ['Trainspotting', '28 Days Later'],
tally: { 'Trainspotting': 1 }
}
}));
});
Sự thất bại cho một cái gì đó như thế:
1) handles SET_STATE
reducer
AssertionError: expected { Object (size, _root, ...) } to equal { Object (size, _root, ...) }
at Context.<anonymous> (/Users/boris_louboff/Labs/VotingApp/voting-client/test/tests.bundle.js:36413:42 <- webpack:///test/reducer.spec.js:21:29)
Tất cả các bài kiểm tra khác mà không được thử nghiệm thứ liên quan đến bất di bất dịch đang đi qua.
Nếu ai đó có bất kỳ ý tưởng nào về những gì có thể giải quyết vấn đề này sẽ tuyệt vời! Cảm ơn bạn.
Ok, xin lỗi về thông tin sai lệch này ... Có một cái gì đó tôi hoàn toàn quên mất đó là chạy với môi trường Node ... mô-đun không thay đổi được !!! Nó đã làm công việc làm cho kỳ vọng làm việc !!! Tôi đang cố gắng làm cho nó hoạt động với phiên bản Karma ... – websilone