segunda-feira, 3 de dezembro de 2007

Testes Unitários com VBScript

Nas ultimas semanas, tive que aprender VBScript por conta de alguns testes que estão por vir. A sintaxe é bem estranha, mas fazer o que...

Entretanto é simples o suficiente para se desenvolver pequenas rotinas e, de quebra, aprender boas praticas de programação, como TDD, no exemplo abaixo:

' Função a ser testada
' EhPrimo determina se um determinado número inteiro é primo ou não
Function EhPrimo(numero)
'
'coloque o codigo aqui :)
'
EhPrimo=false ' so pra retornar algo...
End Function

'Coloquei o nome Test para ficar mais facil :)
Sub Test( objQuery, strMessage )
If Not objQuery Then
WScript.Echo VbCrlf & "ERRO: " & strMessage
WScript.Quit 'no primeiro teste errado...
End If
End Sub

' Testando primos
Primos = array(2,3,5,7,11)
For Each Numero In Primos
Test EhPrimo(Numero),"Numero " & Numero & " deve ser primo!"
Next

' Testando _nao_ primos
NaoPrimos = array(4,6,8,9,10)
For Each Numero In NaoPrimos
Test (Not EhPrimo(Numero)),"Numero " & Numero & " NAO deve ser primo!"
Next

' Testando outras coisas
Test (Not EhPrimo( 0)),"Numero 0 NAO deve ser primo!"
Test (Not EhPrimo( 1)),"Numero 1 NAO deve ser primo!"
Test (Not EhPrimo(-1)),"Numero -1 NAO deve ser primo!"


WScript.Echo VbCrlf & "Pronto, passou tudo!"


Pronto, agora

Qual a vantagem dessa abordagem?
1) vc se obriga a testar o seu código
2) vc descobre quais parametros são uteis nas suas funções
3) vc especifica o comportamento das suas funções ANTES de implementa-la:)

Um comentário:

Unknown disse...

Paranóia minha, mas código VB sempre me pareceu como um texto que abriu com erros... :D