我正在关注advance mocking with detox上的Detox文档。我这样做是因为我想模拟我的api.js文件,该文件默认情况下是从后端服务器获取数据。我将其命名为api.e2e.js的虚假api文件将只包含返回json数据承诺的函数。不幸的是,伪造的api无法启动。下面是我使用的库
我也尝试通过Metro触发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。
答案 0 :(得分:1)
在运行测试之前,您需要使用"That's your best"
启动捆绑器。
因此流程应为:
运行RN_SRC_EXT=e2e.js
,然后运行RN_SRC_EXT=e2e.js react-native start
。您也可以尝试在detox tests
中使用RN_SRC_EXT=e2e.js
排毒:
package.json
答案 1 :(得分:0)
这就是我要使模拟文件正常工作的方式。
如果还不能,我会