Protractor 无法使量角器http模拟工作,抛出错误“;模块';httpMock&x27;不可用&引用;

Protractor 无法使量角器http模拟工作,抛出错误“;模块';httpMock&x27;不可用&引用;,protractor,Protractor,我试图使用“量角器http模拟”模拟http响应 这就是我在测试中使用它的方式 var mock = require('protractor-http-mock'); beforeEach(function() { mock([{ request: { path: 'api/account/activate', method: 'PUT', //status:

我试图使用“量角器http模拟”模拟http响应

这就是我在测试中使用它的方式

var mock = require('protractor-http-mock');
beforeEach(function() {
        mock([{
            request: {
                path: 'api/account/activate',
                method: 'PUT',
                //status: 204
            },
            response: {
                //data: {},
                status: 204
            }
        }]);
    });

expect(mock.requestsMade()).toEqual([
       { url : '/api/account/activate', method : 'PUT' }
    ]);
当我运行测试时,它会显示-UnknownError:javascript错误:[$injector:nomod]模块“httpMock”不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数

另外,当我删除expect部分时,它不会抱怨任何东西,也不会嘲笑任何东西


有更多知识的人能帮忙吗?我不想使用-ngMockE2E,有第三种方法吗?

当没有调用
mock()
但调用了
mock.teardown()
时,我能够重现问题。在您的情况下,应该将
tearDown()
放入
afterEach()

此外,这里需要注意的几件事也有帮助:

  • 量角器配置应定义
    mock

    mocks: {
        dir: "mocks",  // path to directory with mocks
        default: []
    },
    
  • 在量角器配置的
    onPrepare()
    中,设置
    .config

    require("protractor-http-mock").config = {
        rootDirectory: __dirname,
        protractorConfig: "protractor.conf.js"  // name of the config here
    };
    

尝试将
require('dragotor-http-mock')
添加到您的量角器配置中的
onPrepare()
。我在conf.js-onPrepare:function(){require('dragotor-http-mock');}上也做了同样的操作,但仍然没有成功。您能尝试重新安装
dragotor-http-mock
?另外,您使用的是哪个
量角器
版本?谢谢。这也没用,我用的是量角器1.8。我已经为同样的事情创造了一个要点--。我的档案有什么不正确的地方吗?我传递的参数是否不正确?您是否有幸解决此问题?经过大量调试(包括量角器源代码本身),我唯一能得出的结论是,在调用dragrator.get时,确实创建并注入了httpMock模块。然而,在模块本身中放置断点清楚地表明,它甚至从未被调用或添加到应用程序中。我不知道从这里走到哪里。我做的和上面提到的完全一样,但是有一些问题吗?1.为什么在每个功能之后?我没有在每个函数中调用mock,只有一个函数需要mock。2.为什么要单独定义模拟?我从spec文件内部调用它,我真的需要将它分开吗,因为我还没有创建任何类似的模拟文件。在这些步骤之后,我重新安装了应用程序,但仍然无法使用http模拟。这是我的Conf文件-我很愚蠢,我知道为什么在每个函数之后。我以前没见过面。。在我更新的文件中,我没有在每个文件之前使用mock-in,因为我只需要1个文件function@hny2015对不起,我刚刚列出了我设置的所有内容,它正在为我工作。你能共享你的conf文件和mock文件吗,如果可能的话,我看看我做错了什么?@hny2015,我正在比较我所拥有的和你所拥有的,目前我不知道是什么导致了这个错误。你能编辑这篇文章,提供完整的错误回溯,并指出它失败的地方吗?谢谢
require("protractor-http-mock").config = {
    rootDirectory: __dirname,
    protractorConfig: "protractor.conf.js"  // name of the config here
};