Unit Test Con un client Rest Api

di il
7 risposte

Unit Test Con un client Rest Api

Un saluto a tutti,
a qualcuno e' mai capitato di dover testare una classe che al suo interno utilizza un client rest api?!
Qualcuno ha qualche modo per poterlo mockare?!

7 Risposte

  • Re: Unit Test Con un client Rest Api

    Gio26031988 ha scritto:


    a qualcuno e' mai capitato di dover testare una classe che al suo interno utilizza un client rest api?!
    Qualcuno ha qualche modo per poterlo mockare?!
    Devi fare in modo che il tuo client REST sia una classe che implementa una specifica interfaccia (interface) e nell'ambito dello Unit Test dovrai creare un mock di questa classe, che simuli la chiamata e restituisca i dati richiesti dal test.

    Ciao!
  • Re: Unit Test Con un client Rest Api

    Il problema e' che il mio client rest l ho generato utilizzando swagger.... e swagger purtroppo non fa implementare alcuna interfaccia al mio client...
  • Re: Unit Test Con un client Rest Api

    Gio26031988 ha scritto:


    Il problema e' che il mio client rest l ho generato utilizzando swagger.... e swagger purtroppo non fa implementare alcuna interfaccia al mio client...
    Crea una classe che faccia da Adapter, ossia che intermediario e che abbia dei metodi specifici legati al dominio (gli stessi che saranno presenti direttamente nell'interfaccia da creare), e che dietro le quinte si basi sul client Swagger per effettuare le richieste "veraci", consentendo però il mock dell'interfaccia.

    In alternativa, anche se è brutto, credo che i "mocking framework" (es. Moq) possano supportare anche lo scenario di mocking di una classe concreta, ma dovrei verificare.

    Ciao!
  • Re: Unit Test Con un client Rest Api

    Moq non lo supporta... Ho provato ad usarlo...
    Cmq ho risolto modificando il file swagger e facendo implementare una interfaccia alla classe che mi interessava mockare...
    Poi utilizzando la classe mock, ho emulato tutti i metodi che mi interessavano
  • Re: Unit Test Con un client Rest Api

    Gio26031988 ha scritto:


    Moq non lo supporta... Ho provato ad usarlo...
    A me risulta di sì: leggi qui.

    Gio26031988 ha scritto:


    Cmq ho risolto modificando il file swagger e facendo implementare una interfaccia alla classe che mi interessava mockare...
    Poi utilizzando la classe mock, ho emulato tutti i metodi che mi interessavano
    Se è una strada viabile, direi che è quella più corretta, semplice e sicura.

    Ciao!
  • Re: Unit Test Con un client Rest Api

    Cia,
    sto provando a testare un metodo di un proxy che richiama i metodi esposti da un service REST, utilizzando Unit Test.
    Sto iniziando ora a studiare gli Unit test e quando testo il metodo, che prende parametri in input, un messaggio di errore mi dice che dovrei utilizzare [DataRow] o [DynamicData]: come dovrei utilizzare il [DataRow]?

    Il metodo da testare è questo:

    [TestClass]
    public class UnitTest
    {
    [TestMethod]
    [DataRow()] // cosa dovrei passare a DataRow?
    public void Add(Movie movie)
    {
    var customProxy = new Proxy.RestProxy();
    var customUs= customProxy.Add(movie);

    Assert.IsNotNull(customUs);
    }
  • Re: Unit Test Con un client Rest Api

    brobh ha scritto:


    sto provando a testare un metodo di un proxy che richiama i metodi esposti da un service REST, utilizzando Unit Test.
    Non dovresti intervenire in discussioni aperte da altri per problemi diversi da quelli trattati inizialmente.
Devi accedere o registrarti per scrivere nel forum
7 risposte