Tôi rất mới để phản ứng và tôi đã viết một mã sử dụng React 14 mà không có bất kỳ trình chuyển đổi nào. Bây giờ tôi muốn sử dụng Karma-Jasmine để thử nghiệm đơn vị nhưng có vẻ như thử nghiệm của tôi không hiển thị ứng dụng.Thử nghiệm đơn vị phản ứng bằng cách sử dụng Karma và Jasmine
Tôi có cấu trúc sau:
node_modules
MyApp/
/js/ *.js
/test/*.js
Karma.conf.js
package.json
index.html
index.html của tôi:
<html>
<div id="content"></div>
<script src="js/react-0.14.7.js"></script>
<script src="js/react-dom-0.14.7.js"></script>
<script src="js/App.js"></script>
<script src="js/main.js"></script>
<link rel="stylesheet" href="style.css">
</body>
</html>
main.js của tôi:
ReactDOM.render(React.createElement(App), document.getElementById('content'))
My App sau đó là như dưới đây:
var h = React.createElement;
var Command = React.createClass({
render: function(){
return h(....)
}
})
mã kiểm tra của tôi là như sau:
describe('App', function() {
beforeEach(function() {
fixture.load('index.htm');
});
beforeEach(function() {
ReactDOM.render(React.createElement(App), document.getElementById('content'));
});
it('accepts elements', function() {
document.getElementById('x').value = 1;
document.getElementById('y').value = 2;
document.getElementById('setbtn').click();
});
});
Và đây là lỗi:
Uncaught ReferenceError: App is not defined
at main.js:2
(anonymous) @ main.js:2
debug.html:1 (WEB_PAGE context) Lazy require of app.binding did not set the binding field
.
.
.
ReferenceError: fixture is not defined
at UserContext.<anonymous> (main.test.js:6)
Debugging Karma lãm tác phẩm của tôi đã được nạp như tôi có thể nhìn thấy các chức năng trong thành phần của tôi. Tôi đã cài đặt Html2js và thêm vào Karma.conf.js của mình. Tôi đã đọc hầu hết các tài liệu trên web nhưng chúng không giúp ích gì.
Tôi đang làm gì sai? Tôi
'Tham chiếu không bắt buộcLỗi: Ứng dụng không được xác định' - có vẻ như bạn đang xuất nó dưới dạng biến toàn cục có tên" Lệnh "thay vì" Ứng dụng ". Ngoài ra, bạn cần phải bao gồm karma-fixture (xem hướng dẫn cài đặt tại github.com/billtrik/karma-fixture). Cuối cùng, html của bạn không đúng định dạng. Không có thẻ body mở nào –