如何使用react-testing-library发送模拟数据以测试反应事件观察者订阅方法?

时间:2019-06-24 16:36:53

标签: javascript reactjs unit-testing react-testing-library

我正在使用componentDidMount生命周期挂钩,该挂钩具有react-event-observers订阅方法,它侦听从其他组件发布的数据。我想使用react-testing库来测试组件。我正在尝试在测试文件中设置模拟发布数据以呈现组件。但是subscription方法不会列出模拟数据。如何模拟/ SpyOn subscription方法,以便它获取模拟值并呈现其余组件。使用此库: react-event-observer

我尝试在beforeEach方法中设置模拟数据并发布和实例

componentDidMount() {
 this.observer.subscribe("scopetotal", (data) => {
 this.setState({ scopeCost: data['subTotal'], 
                scopecostPerUOM:data['perSqFtTotal']
  });
  this.calTotalCost();
 });
}

describe('CostEstimateCostContainer', () => {
  let observer = ReactObserver();
  let initProps;
  beforeEach(() => {
    initProps={
    name:'Max'
  }
  observer.publish("scopetotal", { 
    'perSqFtTotal':1354.28, 
    'subTotal':67712647 
   });
 });

 test('should render component',()=>{
   const {debug}=render(<MyComponent {...initProps}></MyComponent>)
   debug();
  })
 });

订阅方法未在组件中触发。都没有显示任何错误。

0 个答案:

没有答案