proxyquire如何处理代理模块的二级(间接)需求?

for*_*ran 8 javascript mocking proxyquire

如果我们有三个模块的名称A,BC因此模块A需要BB要求C:这将是这一呼吁的效果?

var A = proxyquire('A', {'C': mockedModule})
Run Code Online (Sandbox Code Playgroud)

模块B会获得模拟或真实C模块吗?

Wol*_*ead 7

但是您可以嵌套proxyquire语句,因此在您的示例中,您可以:

const A = proxyquire('A', {
        'B': proxyquire('B', {
            C: mockC
        })
    });
Run Code Online (Sandbox Code Playgroud)

  • 属性名称 'B': ... 必须相对于 A 所在的位置;第二个 proxyquire 调用的“B”参数必须相对于该表达式所在的文件 (2认同)