我正在尝试使用玩笑来为react.js函数组件创建e2e测试。
Login.js
-登录要测试的组件...
import { api } from '../helpers/api'
...
const Login = () => {
...
const onLogin = () => {
...
api.post('/auth', { email: email.value, password: password.value }).then(res => {
...
}, (err) => {
...
})
}
...
}
api.js
import axios from 'axios'
...
var instance = axios.create({
baseURL: API_ENDPOINT,
timeout: 10000,
headers: {}
})
export const api = instance
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
...
describe('Check login form submit', () => {
test('Login form with invalid email and password', async () => {
const mock = new MockAdapter(axios)
mock.onPost(API_ENDPOINT + '/auth').reply([401, {error: 'INVALID_LOGIN'}])
await page.type('#inputEmail', 'test@gmail.com')
await page.type('#inputPassword', '123456789')
await page.click('#btnLogin')
await page.waitForSelector('.alert.alert-danger')
...
}, timeout)
}
但是当我运行npm run test
时,登录组件会使用实际的api而不是模拟的。
我正在使用玩笑,木偶戏和axios-mock-adapter。
谢谢。