Расширения Chrome-Extensions Jasmine, Chrome, onMessage не определены

1

Поэтому я написал небольшое расширение chrome, которое получает мой выбор в chrome и добавляет его в небольшое текстовое поле во всплывающем окне.

Для этого расширения Chrome я хочу написать несколько небольших тестов с помощью Jasmine. Тем не менее, всякий раз, когда я пытаюсь проверить свой request.method на заданный request.method, Жасмин всегда возвращает

Ошибка: ожидается, что не будет "get_sel_chrome".

Это может показаться очень незначительным, но я просто не могу найти то, что делаю неправильно.

Вот мои файлы:

//Jasmine Main Specification File

//Creating Suite
describe("Lacy-R Functionality Requirement Min Tests: ", function(){

//telling Jasmine to make sure that these are setup before each tests
beforeEach(function(){
      chrome = {
        extension: {
          onMessage: {
            addListener: function(request, sender, sendResponse){}
          }
        }
      }

});

 it('Check if Jasmine is loading. Just a small basic Jasmine test', function(){
     expect(1).toEqual(1);
    });


it('Checks if the request method is get_sel_chrome' , function(){
    expect(chrome.extension.onMessage.addListener(function(request, sender, sendResponse){request.method})).toBe("undefined");
});

it('Using Chrome API functions' , function(){

});
});

Мой основной файл JS:

//stuff chrome does
chrome.extension.onMessage.addListener(function(request, sender, sendResponse){

    if (request.method = "get_sel_chrome"){

    sendResponse({data: window.getSelection().toString()});
}

    else{
    sendResponse({});} //empty response
});

Второй файл

$(function(){
  $('#btn_run').click(function(){get_Info();});
});

function get_Info() {
  chrome.tabs.query({active:true, windowId: chrome.windows.WINDOW_ID_CURRENT}, 

  function(tab) {
    chrome.tabs.sendMessage(tab[0].id, {method: "get_sel_chrome"}, 

    function(response){
      var text = document.getElementById('text'); 
      text.innerHTML = response.data;

    });
  });
}
Теги:
testing
google-chrome
jasmine
google-chrome-extension

1 ответ

0
if (request.method = "get_sel_chrome"){

Это задает request.method для get_sel_chrome, что, вероятно, не так, как вы предполагали.

Чтобы избежать этого в будущем, посмотрите, какой оператор equals (== vs ===) следует использовать в сравнении JavaScript? о том, почему вы должны использовать === для сравнения. JSHint также должен поймать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню