2013-03-08 15 views
13

Sto provando a scrivere una suite di test di integrazione automatici per testare le chiamate della libreria client C# allo Yahoo Fantasy Sports API. Diverse chiamate API richiedono token OAuth, che è dove ho qualche difficoltà. Posso usare un browser web per generare una chiave di accesso e segreti e poi passarli nel mio codice di test, ma i token scadono dopo un'ora, quindi devo rigenerarli manualmente e aggiornare la configurazione di test ogni volta che voglio eseguire test.API di testing delle unità che richiedono token OAuth

Esistono best practice per la scrittura di test di integrazione API quando sono richiesti token OAuth?

+0

Non puoi automatizzare la generazione della chiave? C'è una API REST per questo? O puoi semplicemente fare le richieste http nel codice è necessario. – blank

+0

@Sean, come sei finito a prendere in giro l'API di Yahoo Fantasy Sports? Hai creato un framework di codice che lo prende in giro? Ho bisogno di prendere in giro l'API e mi piacerebbe sapere come l'hai fatto. –

+0

Non sono mai riuscito a prenderlo completamente in giro. Ho una struttura in corso, che puoi visualizzare qui: https://github.com/sconno05/yahoo-fantasy-football-tools. Ho finito per mettere i token in variabili d'ambiente, ma ho ancora bisogno di rigenerarli attraverso una pagina di amministrazione web. – Sean

risposta

3

normalmente tali api offrono un modo per ottenere token di autenticazione senza la necessità di utilizzare un browser. Non sono sicuro che lo sport yahoo sia uno di quelli.

Normalmente è necessario creare un'applicazione per accedere a un sistema OAuth2, quindi fornire ClientID e ClientSecret, quindi si preme un URL del token e si riceve il token di accesso che è quindi valido per un'ora.

Si potrebbe voler considerare di non avere affatto test di integrazione. Se fossi in te mi limiterei a prendere in giro le risposte Api e ad usarlo nei tuoi test. Quindi, gt un esempio della risposta per ogni chiamata e quindi semplicemente creare una risposta falsa che ritorna ogni volta che lo colpisci. puoi quindi eseguire ancora i test.

La domanda a cui devi rispondere è questa: cosa sto testando esattamente? Stai provando un APi di terze parti o vuoi testare il tuo codice.

Inoltre, non dimenticare che ciascuna API consente di essere colpito un certo numero di volte durante una determinata finestra temporale. Un motivo in più per fingere, direi

+0

cosa succede se sto testando l'API di terze parti che implementa OAuth –

Problemi correlati