我有一个.json文件,其中包含我用于八达通部署的{ apiUrl: '#{placeholder}' }
。
我使用.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文件无法做到的吗?确实看起来应该是这样。