Как по-разному смоделировать клонированную зависимость импорта в каждом тесте

У меня есть файл, который импортирует другой. Я хочу смоделировать другой импорт по-разному в каждом тесте, но показать его через файл, который его импортирует.

Я пробовал разные способы насмешки и импорта через поиск в Google, но ни один из них не помог.

Рассмотрим файлы:

  

settings.js

export default { mySetting: null };
  

store.js

import settings from "./settings";
export default {
  settings: { ...settings },
};
  

settingsDemo.js

import store from "./store";

it("default settings", () => {
  expect(store.settings.mySetting).toBe(null);
});

it("mocked to true", () => {
  expect(store.settings.mySetting).toBe(true);
});

it("mocked to false", () => {
  expect(store.settings.mySetting).toBe(false);
});

как мне смоделировать эти файлы в settingsDemo.js, чтобы все 3 теста прошли без редактирования settings.js или store.js?

Примечание: это похоже на мой предыдущий вопрос , но решение для импорта зависимости и изменения значения в этом случае не работает, так как store не ссылается на settings здесь, но вместо этого клонирует его для начального значения.

4 голоса | спросил JD. 11 +03002018-10-11T23:27:02+03:00312018bEurope/MoscowThu, 11 Oct 2018 23:27:02 +0300 2018, 23:27:02

2 ответа


0
Применяется тот же принцип: «хотя вы не можете изменить значение импорта, вы можете изменить объекты, на которые они ссылаются».В этом случае ---- +: = 0 =: + ---- - это объект, который содержит вложенный ---- +: = 1 =: + ---- объект.Хотя невозможно просто назначить ---- +: = 2 =: + ---- чему-то другому, можно назначить ---- +: = 3 =: + ---- чему-то другому,Также можно установить ---- +: = 4 =: + ---- к чему-то еще:
ответил brian-lives-outdoors 5 12018vEurope/Moscow11bEurope/MoscowMon, 05 Nov 2018 22:15:06 +0300 2018, 22:15:06
0
Я не уверен, что понимаю ваш вопрос.Похоже, вы просто хотите издеваться над простым объектом" ---- +: = 0 =: + ---- ".
ответил Forivin 7 32018vEurope/Moscow11bEurope/MoscowWed, 07 Nov 2018 13:50:12 +0300 2018, 13:50:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132