Vue, как издеваться над моим внешним классом обслуживания - PullRequest
0 голосов
/ 14 мая 2019

В моем компоненте vue в смонтированном я вызываю класс обслуживания, который, в свою очередь, вызывает вызов axios .. как показано ниже

import StudentService from '../utils/student.services'

export default {
  name: 'student-summary',

  mounted () {
    console.log('%c FeeMdoule-Data Recieved on Mount as %s', 'color: blue ;font-size : 12px', JSON.stringify(this.filingData))
    StudentService.getDetails().then(data => {
      this.sList = data
    })
  },

Я сейчас написал тестовые примеры JEST для компонента vue, и у меня есть смоделированные оси в тестовых случаях компонента vue. Но я думаю, что правильный подход состоит в том, чтобы издеваться над студентами-сервисами, а не издеваться над аксио прямо из компонента ...

Как смоделировать студенческие сервисы из теста vue compoent и не иметь никаких аксиом в тестовом примере моего компонента vue?

1 Ответ

2 голосов
/ 14 мая 2019

Jest документы описывают макеты классов здесь

StudentService.spec.js

import StudentService from '../utils/student.services'

jest.mock('../utils/student.services');

describe("StudentService", () => {
    let mockDetails = [{ studentId: 1 }]
    StudentService.getDetails = jest.fn().mockResolvedValue(mockDetails);

    afterEach(() => {
      // reset mock after each test
      StudentService.getDetails.mockReset();
    });

    it("should get details", () => {
      // ... mount your component
      expect(StudentService.getDetails).toHaveBeenCalled();
    });

});
...