尽管要调用的所有条件均正确,但未调用测试中的Props函数

时间:2019-05-29 14:56:50

标签: reactjs jestjs enzyme

我有一个表单,当我提交她时,我调用一个验证表单的函数,如果一切正常,我将调用一个带有API的redux-saga操作。

当我对此进行测试时,我会监视redux函数,并为输入字段设置一些通过验证的值,并且我希望该函数与spy一起被调用,但没有被调用。

我试图放置一些控制台日志以查看我在做什么,并且字段值已设置并且具有调用函数的所有条件,但间谍却说没有被调用。

我放置异步并等待功能,代码和测试,但这并不能解决我的问题。

在我的表单中,我有一个函数

df1['New_Date'] = [x-timedelta(days=2) if x.weekday()==6 else x for x in df1['Loan Date Negotiation']]

和我的测试功能

function loginUser(event) {
    event.preventDefault();
    let error = false;
    const { field1, field2, field3 } = values;
    console.log(values);

    // settings errors in each input field
    /* my logic is here, if has error, the var error is setted to true*/

    // if no errors, fetch login
    if (!error) {
      console.log('Error:', error);
      fetchLogin(domain, user, password);
    }
  }

我希望已调用该函数,但这从未发生,并且ii不知道为什么。

我将控制台日志放在函数的第一行中,并向我显示值:

test('submit ok', () => {
    const spy = jest.spyOn(Comp.props(), 'fetchLogin');
    const form = Comp.find('form');

    // setFieldValue is a passed in props by Formik Lib 
    Comp.props().setFieldValue('field1', 'some value');
    Comp.props().setFieldValue('field2', 'some value');
    Comp.props().setFieldValue('field3', 'some value');

    form.simulate('submit', { preventDefault() {} });
    console.log(spy);
    expect(spy).toBeCalled();
  });

并将控制台日志放在功能console.log src/pages/Login/LoginForm.jsx:128 { field1: 'some value', field2: 'some value', field3: 'some value' } 之前:

fetchLogin

但是测试显示了我

console.log src/pages/Login/LoginForm.jsx:158
    Error: false

0 个答案:

没有答案