шутка только что прошла все испытания, даже если это ложь - PullRequest
1 голос
/ 17 октября 2019

Я тестирую свое приложение vue.js с помощью jest. и я понял, что шутка только что прошла все эти испытания, даже если это не получится. например, этот должен быть неудачным, потому что тип входного пароля - true, но весь мой тестовый код прошел либо true, либо false. ..

  test('password input field type is password at the beginning', done => {
    setTimeout(() => {
      const pw = wrapper.find({ ref: 'pw' });
      expect(pw.contains("[type='password']")).toBe(false);
    }, 10);
    done();
  });
beforeEach(() => {
  // Create the Store mock

  state = {
    auth: {
      something: false,

    },
    data: {},


  };
  getters = {
    somethingg: jest.fn(),

  };
  actions = {
    'auth/login': jest.fn(),

  };

  store = new Store({
    state,
    getters,
    actions
  });

  wrapper = shallowMount(TheLoginComponent, {
    propsData: {},
    mocks: {},
    stubs: {

    },
    methods: {

    },
    data: {},
    localVue,
    store
  });

});

afterEach(() => {
  wrapper.destroy();
});

1 Ответ

1 голос
/ 17 октября 2019

setTimeout не работает с шуткой в ​​этом случае. Он асинхронный и не гарантирует, что он будет выполнен до завершения шумихи.

Если у вас есть асинхронные вызовы, которые заставляют вас написать его, flushPromises, как показано ниже, и попробуйте:

const flushPromises = new Promise(resolve=> setImmediate(resolve)) ;

Внутренние тесты: (метод примечания асинхронный)

it('dummyTest', async() => { // Render here await flushPromises() ; //assert here }) ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...