Поэтому я написал небольшое расширение 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;
});
});
}
if (request.method = "get_sel_chrome"){
Это задает request.method
для get_sel_chrome
, что, вероятно, не так, как вы предполагали.
Чтобы избежать этого в будущем, посмотрите, какой оператор equals (== vs ===) следует использовать в сравнении JavaScript? о том, почему вы должны использовать ===
для сравнения. JSHint также должен поймать это.