Скажем, у вас есть модуль из множества вспомогательных функций. В некоторых проектах может потребоваться только одна функция. Вы также хотите, чтобы ваш модуль легко тестировался, например, пользователи должны иметь возможность имитировать функции, не прибегая к дополнительным библиотекам. Пожалуйста, смотрите два сценария ниже.
Тестируемый
// code.js
export const namespace = {
a() {...},
b() {this.a();},
c()
};
// user.js
const {namespace} = require("./code.js");
export function userFn() {
namespace.b();
}
// ===> Everything in code.js will be bundled. :(
// test.js
const {namespace} = require("./code.js");
const {userFn} = require("user.js");
spyOn(namespace.b)
userFn();
assert.equal(namespaced.b.called, 1);
Дрожание деревьев
// code.js
export function a() {...}
export function b() {a()}
export function c() {}
// user.js
import {b} from "./code.js";
function userFn() {b();}
//Function "c" from code.js will not be bundled.
// test.js
// ===> You only really need to know that "b" was called. How to test that? :(
Можем ли мы иметь модули вспомогательных функций, которые можно тестировать и для которых работает встряхивание дерева - желательно без необходимости иметь дополнительную библиотеку тестирования или около того?
Также, пожалуйста, кричите на меняесли есть ошибки в моих сценариях.