Separazioni di preoccupazioni e gestione delle dipendenze nel progetto di automazione

3

Sto lavorando su un progetto di automazione in C # e ha 2 wrapper: DesktopAutomation e BrowsersAutomation . Il primo ha una dipendenza su UIAutomation.dll s (accesso agli elementi del desktop MS) e il secondo su Selenium. Il loro ruolo è capito spero;)

Ora, ci sono azioni dell'utente sui browser che richiedono una dipendenza su UIAutomation (o DesktopAutomation per quella materia), poiché il selenio ti dà accesso al DOM e non ai pulsanti di estensione in Chrome, ad esempio.

Quindi la mia domanda è, quale sarebbe il modo corretto / migliore pratica, la costruzione del software saggio:

  1. Aggiunta di una dipendenza a BrowsersAutomation su DesktopAutomation che presenta il vantaggio di un progetto di lavoro che ha metodi esistenti che posso usare.
  2. Aggiunta di una dipendenza diretta a BrowsersAutomation su UIAutomation.dll s che rende questo progetto più generico. per esempio. utilizzarlo in altri progetti non richiederà un'altra dipendenza.

O forse qualche altra configurazione a cui non ho pensato ...?

    
posta Moshisho 01.01.2017 - 13:58
fonte

1 risposta

2

Questa frase

which has the advantage of a working project that has existing methods I can use

significa che ci sono metodi o classi riutilizzabili che potrebbero essere utilizzati sia da BrowsersAutomation che da alcune parti non generiche di DesktopAutomation , giusto?

Se ciò è corretto, ti consiglio di rifattorizzare i metodi riutilizzabili da DesktopAutomation in un posto dove possono essere usati da BrowsersAutomation e DesktopAutomation come, ad esempio, in una nuova DLL chiamata MyUIAutomation.DLL ( Suppongo che tu non possa mettere direttamente i metodi in UIAutomation.DLL , perché hai una lib di terze parti come la UIAutomationCore.DLL di Microsoft in mente, giusto?)

Questo approccio ti dà il vantaggio che hai nominato al punto 1 (riutilizzo dei metodi esistenti) insieme al vantaggio di non rendere BrowsersAutomation dipendente dalle parti non generiche di DesktopAutomation .

    
risposta data 01.01.2017 - 15:55
fonte

Leggi altre domande sui tag