Come testare l'HTML creato dinamicamente quando i test sono in un file separato?

1

Contesto del codice

Ho una pagina complessa come parte della mia app Web che viene popolata in modo dinamico con le informazioni utilizzando knockout.js . La pagina ha creato dinamicamente i tag di ancoraggio che si collegano l'un l'altro. Ad esempio, potrebbe esserci un tag

<a data-bind="attr: { id: 'top-' + myArray().length, href: '#bottom-' + myArray().length }">

nella parte superiore della pagina e

<a data-bind="attr: { id: 'bottom-' + myArray().length, href: '#top-' + myArray().length }">

nella parte inferiore della pagina. Abbiamo un file test.html che contiene tutti i test front-end ed è separato da tutti i file view.html.

Test dell'ideologia

Il nostro ambiente di lavoro è impostato in modo tale che quando qualcuno sta eseguendo una revisione tra pari, può verificare se tutti i test front-end stanno passando e assicurarsi che tutto funzioni come previsto. Naturalmente, questo ambiente dipende da test ben scritti che coprono tutto il codice. Pertanto, quando viene rilevato un comportamento imprevisto, vogliamo scrivere un test dell'unità in errore per esporre quel comportamento come test in modo che il nostro sistema di test continui a funzionare.

Problema

È stato trovato un bug in cui il secondo tag <a> come visto sopra non veniva impostato correttamente. Seguendo la nostra ideologia di test, voglio scrivere un test unitario per garantire che entrambi i tag vengano creati correttamente.

Soluzioni che ho escluso

Copiare e incollare il codice HTML che genera i tag <a> dinamici dalla vista al file di test non ha senso perché se uno sviluppatore che lavora sul progetto in futuro modifica l'HTML nella vista e non lo fa aggiornalo nel file test.html, quindi il test è sbagliato.

Inoltre, non sono disposto a includere semplicemente i test sulla pagina view.html, in quanto ciò violerebbe un certo numero di principi e mi sembra una cattiva idea tutt'intorno.

Domanda

Quindi la mia domanda è: come posso testare l'HTML creato dinamicamente mentre permetto ai test di risiedere in un file separato?

EDIT: per rendere più chiaro il mio dilemma: come posso scrivere HTML in modo che esista in due file separati (A & B), in modo tale che solo un file (A, B o C) debba essere modificato in per aggiornare l'HTML sia in A & B?

A modified --> A and B both updated with changes to A

o

C modified --> A and B both updated with changes to C

Possibile soluzione?

Mi sono chiesto se le importazioni di HTML sarebbero una possibile soluzione a questo problema e se qualcuno ne sapesse qualcosa in questa situazione apprezzerei le tue opinioni.

    
posta TW80000 29.08.2016 - 15:47
fonte

1 risposta

1

Se vuoi testare il codice html creato dinamicamente, il tuo test deve crearlo dinamicamente.

Qualsiasi routine di test che implichi operazioni di copia e incolla è errata. Testare i duplicati è sbagliato. I passaggi manuali in un test sono pessimi.

Qualsiasi soluzione che richieda codice operativo per conoscere i test è cattiva.

Tuttavia, forse vale la pena prendere in considerazione una riprogettazione per rendere possibile codice operativo e codice di prova per creare facilmente l'html dinamico.

I test dovrebbero controllare ciò che viene generato per semplificare il confronto.

Evita di testare cose banali. Concentrato di verifica del comportamento.

    
risposta data 29.08.2016 - 17:45
fonte

Leggi altre domande sui tag