Dove viene disegnata la linea figurata per l'utilizzo di servizi statici in un progetto? Sono uno studente della coop che lavora e impara a scrivere progetti .net MVC. Ho sviluppato cercando di attenermi a TDD. Nel mio progetto sto usando ninject per l'iniezione delle dipendenze. Ho scritto un abstract e una classe che li implementa per fare chiamate al servizio API alla nostra API interna. Non esiste ancora una libreria di classi per queste API, quindi sto scrivendo le mie cose.
In questo caso mi sto ritrovando a chiedermi perché sto usando classi non statiche per questo servizio API. Non ci sono informazioni sullo stato memorizzate per le chiamate API che sono IP validati. Tutti gli indirizzi per le posizioni delle chiamate sono memorizzati nel file di configurazione.
Non riesco a vedere come usare una classe statica qui renderebbe la prova più difficile. Puoi testare la classe statica per verificare che funzioni. Se ti trovi a dover utilizzare dati fittizi, puoi semplicemente prendere in giro l'oggetto che l'API dovrebbe restituire. Se ciò è impossibile a causa della progettazione del metodo, è altamente probabile che il metodo che stai testando stia cercando di fare molto.
Ritengo che quasi tutte le situazioni, in questo caso particolare, in cui il fatto che il servizio sia statico influenzerebbe il testing, si verificherebbero nel tentativo di manipolare gli oggetti restituiti; che dovrebbe essere estratto in un'estensione o in un metodo di utilità che potrebbe essere testato, quindi non ci dovrebbero essere problemi con la classe statica che influisce sul test.
C'è una buona ragione per non diventare statico che mi manca o qualcosa che riguarda il test unitario e l'iniezione che mi manca? Mi piacerebbe poter dire con certezza che usare l'elettricità statica è una buona idea in questo caso, ma sento che mi manca la conoscenza per farlo.
Un'altra domanda è stata collegata "È statico universalmente malvagio" che non è una mia domanda. So che la statica non è universalmente malvagia e ha il suo posto. La mia domanda è: dove è prudente utilizzare la statica e in quali circostanze un servizio astratto può essere meglio scritto come statico, senza causare problemi di testabilità.