Modul 'httpMock' tidak tersedia

Ini adalah pesan kesalahan pada pengujian busur derajat menggunakan tiruan http busur derajat:

JavascriptError: kesalahan javascript: [$injector:nomod] Modul 'httpMock' tidak tersedia! Anda mungkin salah mengeja nama modul atau lupa memuatnya. Jika mendaftarkan modul, pastikan Anda menentukan dependensi sebagai argumen kedua.

conf.js:

// An example configuration file.
exports.config = {
  directConnect: true,
    // Selenium server
  SeleniumAddress: 'http://localhost:4444/wd/hub',
  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome'
  },
    //baseUrl: 'http://develop.garbo.livebranches.com/sv-SE/',
    //Framework to use. Jasmine 2 is recommended.
    framework: 'jasmine2',
    //frameworks: ['mocha', 'jasmine'],

    // Spec patterns are relative to the current working directly when
    // protractor is called.
    //specs: ['testmain.js','testlogin.js'],
    //specs: ['testmain.js','testteaPartyList.js','testpositionSearchIndex.js','testpositionList.js'],
    specs: ['testlogin.js'],

    //Options to be passed to Jasmine.
  jasmineNodeOpts: {
    defaultTimeoutInterval: 250000
  },
  mocks: {
        dir: '../node_modules/protractor-http-mock',
        //dir: 'mocks',
        default: []
    },
  //=====login begin =====
 onPrepare: function() {
    require("protractor-http-mock").config = {
    rootDirectory: '../node_modules/protractor-http-mock/lib',
    //rootDirectory: __dirname,

    protractorConfig: "conf.js",  // name of the config here
    };

  }

  //=====login end========


};

teslogin.js

describe('angularjs homepage', function() {

    //browser.ignoreSynchronization = true;
  it('should login', function() {
    var mock = require('protractor-http-mock');
    var todoList;

    beforeEach(function() {

        var url ='http://dev.etest.com:285/Actor/tbUsers/LoginAndGet';

        var req = {Mobile:'14500000006',Password:'123456'};

        var rep = {UserId:164,AccountId:328,Token:'328:dc91d536ab424aa0b8d7f1ecaf64c55b',Id:328};

        mock([{
        request: {
          path: url,
          method: 'POST',
          data:req,
        },
        response: {
          data: rep,
        }
        }]);
    });
    afterEach(function() {
        mock.teardown();
    });

    browser.get('http://localhost:2024/daNiuJob/www/ionicWeb/index.html#/login');

    console.log('mock='+mock);

    element(by.model('data.userName')).sendKeys('14500000006');
    element(by.model('data.password')).sendKeys('123456');
    var btnlogin = element(by.id('Regist')).element(by.tagName('a'));   

    expect(browser.getTitle()).toEqual('userlogin');

        browser.getTitle().then(function(text){

        console.log('title='+text);
    });

    //cause mock error
    expect(mock.requestsMade()).toEqual([
        { url : 'http://dev.etest.com:285/Actor/tbUsers/LoginAndGet', method : 'GET' },
    ]);

    btnlogin.click();


    browser.sleep(8000);

    });


});

Mengapa tidak dapat menemukan httpMock, terima kasih!

catatan:

C:\Users\HQ-XXX\AppData\Roaming\npm\node_modules\protractor\node_modules\protractor-http-mock

Ini adalah jalur 'busur derajat-http-mock'


person jack    schedule 07.09.2015    source sumber
comment
Kesalahan terjadi karena busur derajat tidak dapat menemukan modul httpMock Anda di jalur yang ditentukan. Jika direktori node_modules Anda relatif terhadap direktori proyek Anda dan di dalamnya, gunakan rootDirectory: './node_modules/protractor-http-mock/lib',. Atau beri tahu saya seperti apa struktur foldernya untuk membantu Anda melakukannya.   -  person Girish Sortur    schedule 07.09.2015
comment
C:\Users\HQ-XXX\AppData\Roaming\npm\node_modules\protractor\node_modules\protractor-http-mock Ini adalah jalur 'protractor-http-mock'   -  person jack    schedule 07.09.2015
comment
C:\Users\HQ-XXX\AppData\Roaming\npm\node_modules\protractor\example\conf.js   -  person jack    schedule 07.09.2015


Jawaban (2)


Anda harus memberikan jalur folder modul http-mock dan bukan folder lib di dalamnya. Ubah jalur rootDirectory Anda dari protractor-http-mock di dalam fungsi onPrepare() menjadi -

rootDirectory: 'C:\Users\HQ-XXX\AppData\Roaming\npm\node_modules\protractor\node_modules\protrac‌​tor-http-mock ',

Jika Anda perlu memberikan jalur relatif, ubahlah seperti di bawah ini -

rootDirectory: '..\node_modules\protrac‌​tor-http-mock ',

Semoga ini membantu.

person Girish Sortur    schedule 07.09.2015

Kami memiliki masalah yang sama dan ini terkait dengan pemuatan ulang halaman di awal setiap spesifikasi.

Hal ini disebabkan oleh kesalahan konfigurasi html5mode dan browser.get sehingga melakukan pengalihan di awal dari foo.bar/ ke foo.bar/#/ yang membongkar semua kode busur derajat yang disuntikkan.

person outsmartin    schedule 22.09.2016