![](/img/trans.png)
[英]Is there a plugin for karma that highlights Javascript code covered (or not covered) by the jasmine tests
[英]Karma/Jasmine Tests and dropbox authentication in javascript
我正在嘗試使用Karma和Jasmine為使用Dropbox Datastore API的javascript應用程序創建一些測試。 這是使用https://www.dropbox.com/developers/datastore/tutorial/js的 Dropbox入門代碼的簡化測試
在運行測試之前,我已使用瀏覽器中的Dropbox手動授權了該應用程序,但是在運行測試時,它表示未對客戶端進行身份驗證,也不會發生錯誤。 在運行測試時,是否還需要做一些其他事情才能對其進行身份驗證?
'use strict';
describe('dropbox', function () {
var client = null;
beforeEach(function() {
client = new Dropbox.Client({key: '46tjf8x15q98xic'});
// Try to finish OAuth authorization.
client.authenticate({interactive: false}, function (error) {
if (error) {
alert('Authentication error: ' + error);
}
});
});
it('client is not null', function() {
expect( client ).not.toBeNull();
});
it('authenticated is true', function() {
expect( client.isAuthenticated() ).toEqual( true );
});
});
Running "karma:unit" (karma) task
INFO [karma]: Karma v0.10.9 server started at http://localhost:8080/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 33.0.1750 (Mac OS X 10.9.2)]: Connected on socket BKoS8rqqeeL7fg3cHEQl
Chrome 33.0.1750 (Mac OS X 10.9.2) dropbox authenticated is true FAILED
Expected false to equal true.
Error: Expected false to equal true.
at null.<anonymous> (/Users/davidsmith/Sites/myapp/test/spec/dropbox.js:23:38)
Chrome 33.0.1750 (Mac OS X 10.9.2): Executed 2 of 2 (1 FAILED) (0.301 secs / 0.009 secs)
Warning: Task "karma:unit" failed. Use --force to continue.
Aborted due to warnings.
因此,為了能夠運行測試,我查看了瀏覽器的本地存儲並復制了應用程序的保管箱鍵/值對。
在測試腳本中,我將鍵/值對添加為
var value = '{"key":"46tjf8x15q98xic","token":"srMz5w4ReBsAAAAAAAAAAWfQfibrbJfeI7LVKsbMvxRfX1pdpS6SOKqvN6DcgK1B","uid":"1407454"}';
localStorage.setItem('dropbox-auth:default:cHKvNCKVzU7Jmnyaj1InU8TBCOc', value );
另一個相關問題(上面未顯示)是openDefaultDatastore是異步的,因此在我的測試腳本中,我添加了一些代碼以等待openDefaultDatastore完成后再運行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.