簡體   English   中英

javascript中的Karma / Jasmine測試和保管箱身份驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM