【发布时间】:2019-06-19 04:14:52
【问题描述】:
我正在关注advance mocking with detox 上的排毒文档。我这样做是因为我想模拟我的 api.js 文件,该文件默认从后端服务器获取数据。我将其命名为 api.e2e.js 的虚假 api 文件将只包含返回 promise 的函数和 json 数据。不幸的是,假的 api 没有起作用。下面是我使用的库
- react-native 0.57.8
- 排毒 9.1.2
我也尝试通过 Metro 和 build 命令触发 env 变量,但没有成功。
action/restaurants.js
import Api from '../api';
export const getRestaurants = () => {
return (dispatch) => {
dispatch(gettingRestaurants());
Api.get.restaurants()
.then(resJson => {
console.log('get response', resJson);
dispatch(getRestrauntsSucces(resJson));
}).catch(error => {
console.log('response error', error)
dispatch(getRestaurantsFailure(error));
})
}
}
api.e2e.js
export default {
get: {
restaurants: () => {
console.log('you are in fake api');
return new Promise((resolve, reject) => {
resolve( [
{
id: 1,
name: 'Test Shop',
location: 'Johore',
category: 'Johore',
user_id: 1
}
])
})
},
}
}
rn-cli.config.js
module.exports = {
getSourceExts: () => process.env.RN_SRC_EXT ?
process.env.RN_SRC_EXT.split(',') : []
};
预计会调用伪造的 api,但仍会调用原始 api。
【问题讨论】:
-
您创建了一个
posts方法,因为您的e2e文件只有一个get? -
@Andrew 感谢您指出这一点。实际上,我只是为伪造的 api 创建了 GET 以进行测试,并将代码错误地放入问题中。已更正代码
-
你解决了吗?我看到同样的事情。谢谢
标签: react-native detox