2016-01-13 50 views
1

我正在寫一個茉莉花自定義匹配使用的量角器規格,我想檢查瀏覽器標題是否等於一些字符串。我無法讓這段代碼正常工作,花費數小時調試後,我只能假設browser對象沒有像我期望的那樣在匹配器函數內被訪問。當我修改匹配器函數來接受browse.getTitle()作爲實際參數時,它可以正常工作,這導致了我的假設。任何人都可以在這裏找到問題並向我解釋?茉莉花自定義匹配與量角器檢查瀏覽器標題

beforeEach(function() { 
    jasmine.addMatchers({ 
     toBeOnPage: function(util, customEqualityTesters) { 
      return { 
       compare: function(actual, expected) { 
        var result = {}; 
        result.pass = actual.getTitle() === expected.title; 
        return result; 
       } 
      }; 
     } 
    }); 
}); 

var homepage = { url: 'Homepage URL', title: 'Homepage Title' }; 

describe('regression:', function() { 
    it('homepage loads successfully', function() { 
     browser.get('http://localhost/#/home'); 
     expect(browser).toBeOnPage(homepage); 
    }); 
}); 

回答

2

的問題是,getTitle()返回一個承諾。解決它:

beforeEach(function() { 
    jasmine.addMatchers({ 
     toBeOnPage: function(util, customEqualityTesters) { 
      return { 
       compare: function(actual, expected) { 
        return { 
         pass: actual.getTitle().then(function (title) { 
           return title === expected.title; 
         }); 
        }; 
       } 
      }; 
     } 
    }); 
}); 
+0

謝謝。這是修復。 – exbuddha