Как я могу проверить, меняются ли мои данные? (Vue JS, Jest, Unit-тестирование) - PullRequest
0 голосов
/ 07 января 2020

Я работаю над модульным тестированием моего кода с помощью Jest в моем проекте Vue JS, и один из тестов, которые я хочу написать:

it('should show the advanced filters if user_id exists', () => {
  })

Это часть созданного свойство в коде Javascript:

this.user_id = localStorage.getItem("user_id");
      if (this.user_id) {
        this.renderAdvancedFilters = true;
      }

Кроме того, ниже приведена часть экспортируемых данных:

export default {
  data: () => ({
    renderAdvancedFilters: false,
    user_id: localStorage.getItem("user_id"),

Итак, renderAdvancedFilters изначально имеет значение false, но если Идентификатор пользователя существует, затем он устанавливается в true, и затем отображаются расширенные фильтры. Как написать модульный тест, в котором показано, что если идентификатор пользователя существует, в приложении отображаются расширенные фильтры? Поскольку это созданное свойство, взаимодействие с приложением для тестирования отсутствует, поэтому я думаю, что мне следует просто проверить данные, но я не уверен, как это сделать.

Должен ли я дразнить данные this.user_id? Если да, то как мне это сделать?

Спасибо

1 Ответ

1 голос
/ 07 января 2020

Я думаю, вам нужно только смоделировать это localStorage.getItem();.

Смоделировать его, чтобы вернуть фиктивный идентификатор пользователя, а затем просто запустить тест и проверить, что результат соответствует ожидаемому.

Похоже, это единственная зависимость, которую нужно издеваться.

Что-то вроде:

global.localStorage = {
    getItem: jest.fn(() => 'some user id')
};
...