json - 如何以不同的方式模拟静态 json 文件以进行测试?
问题描述
我有一个 .json 文件,其中包含{ apiUrl: '#{placeholder}' }
我用于 Octopus 部署的文件。
我使用 .json 文件的服务:
import config from '../../configuration/appconfig.json'
function appConfigService() {
const { apiUrl } = config
return {
apiUrl: `${
apiUrl === '#{placeholder}' ? 'http://localhost:57567' : apiUrl
}/api/`
}
}
export default appConfigService
我遇到的问题是测试这两种情况(在同一个 .test 文件中)。如果我去
/__mocks__/appconfigMock.js
路线
或者
jest.mock('../../configuration/appconfig.json', () => ({
apiUrl: 'https://a-legit-url.com'
}))
路线,
所有测试的值都相同。我不能在单个测试中模拟,因为它不适用于导入。我也无法在单个测试中取消模拟。我能找到的唯一解决方案是将测试分成两个文件(荒谬)并分别模拟它们。
我试过了
jest.resetModules()
jest.unmock('../../configuration/appconfig.json')
在我不想使用模拟的测试中,它仍然使用模拟。
这对于静态 json 文件来说是不可能的吗?似乎真的应该如此。
解决方案
推荐阅读
- jenkins - 禁用 Jenkins 构建按钮
- ruby-on-rails - Rails Active Record 仅针对 created_at 日期时间值的日期字段进行查询
- mysql - 如何在 laravel 中的一个“用户”表中建立父子关系
- stream - 什么是 Dlang 标准流模块?
- woocommerce - facebook 像素和 woocommerce 购物车总数和 GTM
- web-scraping - BS4:从 BeautifulSoup 对象获取 lxml etree
- regex - 正则表达式 DNS ANSWER SECTION 分组
- amazon-web-services - 无法在 EC2 实例上设置 DFS 命名空间
- python - 熊猫:键之间具有指定差异范围的外连接
- javascript - 在我 request.send() 之后,我是否必须始终创建一个新的请求 obj?