Hãy nói rằng tôi có một bộ phận trông như thế này:Sinon.js - stub Chức năng của thành phần phản ứng trước khi thành phần được khởi tạo?
var React = require('react/addons');
var ExampleComponent = React.createClass({
test : function() {
return true;
},
render : function() {
var test = this.test();
return (
<div className="test-component">
Test component - {test}
</div>
);
}
});
module.exports = ExampleComponent;
Trong thử nghiệm của tôi, tôi có thể làm cho thành phần này sử dụng TestUtils
, sau đó còn sơ khai ra các phương pháp như vậy:
var renderedComponent = TestUtils.renderIntoDocument(<ExampleComponent/>);
sinon.stub(renderedComponent, 'test').returns(false);
expect(renderedComponent.test).toBe(false); //passes
Nhưng có một cách tôi có thể nói với Sinon để tự động phân tích chức năng của một thành phần mỗi khi một cá thể của thành phần đó được tạo ra? Ví dụ:
sinon.stubAll(ExampleComponent, 'test').returns(false); //something like this
var renderedComponent = TestUtils.renderIntoDocument(<ExampleComponent/>);
expect(renderedComponent.test).toBe(false); //I'd like this to pass
Nếu không thể, có giải pháp tiềm năng nào gần đến việc cung cấp chức năng tôi đang tìm không?
Cảm ơn câu trả lời. Trong khi nó có vẻ làm việc cho một số trường hợp, nó không hoàn toàn làm những gì tôi đang tìm kiếm. Có lẽ tôi nên cụ thể hơn một chút. Tôi có một phụ huynh và một thành phần con, và thành phần con được trả về bên trong phương thức 'render' của thành phần cha. Cha mẹ sử dụng 'require()' để có được hàm tạo, và dường như không có cách nào để ghi đè nguyên mẫu của đứa trẻ trong bài kiểm tra của tôi. Điều này có nghĩa không? Tôi có thể cập nhật câu hỏi của tôi với một ví dụ nếu bạn muốn. –
Thật tuyệt vời nếu bạn có thể mở rộng câu hỏi bằng một ví dụ. – Victor
Tôi tìm thấy một giải pháp làm việc, nhưng tôi vẫn sẽ trao cho bạn tiền thưởng. –