Как я должен тестировать компоненты VUE при использовании Firebase? - PullRequest
0 голосов
/ 04 октября 2018

Я пишу юнит-тесты для проекта VUE, который использует FireBase.В тестах используется vue-test-utils.

Дело в том, что у меня возникают проблемы при попытке обойти аутентификацию, и при каждом тесте я обнаруживаю, что делаю что-то подобное.

...
const login = async () => {
return firebase.auth().signInWithEmailAndPassword(email, pass).then(
    res => {
        return res
    },
    err => {
        return new Error(err)
    })
}
...
describe('some component', () => {
    it('test something', async () => {
        try {
            await login()
            ...
        } catch (e) {
            ...
        }
    })
    it('test something else', async () => {
        try {
            await login()
            ...
        } catch (e) {
            ...
        }
    })
})

Мой вопросКаков рекомендуемый способ тестирования компонентов vue, использующих firebase, и как избежать необходимости входить в систему для каждого теста?

Надеюсь, я правильно объяснил свой вопрос!

Я закончил этим, как и вВ моем случае достаточно сделать это один раз.

...
beforeAll(() => {
  return login()
})

describe('some component', ...

1 Ответ

0 голосов
/ 04 октября 2018

Один из подходов заключается в использовании функции beforeEach в вашем наборе тестов для проверки подлинности / проверки подлинности проверки подлинности, просто:

beforeEach(() => {
    try {
        await login()
        ...
    } catch (e) {
        ...
    }
})

Однако выполняете ли вы эту логику непосредственно в компоненте vue?В идеале вы не хотите делать такие вызовы напрямую из ваших компонентов vue.Если вы переместили эту логику из своего компонента в класс обслуживания (или пошли дальше и используете vuex для управления своим состоянием и т. Д.), То вы можете протестировать логику firebase отдельно от логики вашего компонента.

...