Minicurso groovy grails
View more presentations from Victor Hugo Germano.
Grupo de Usuários Java da Bahia
class GroovyCalc {
def soma(a,b) { -100 }
def multiplica(a,b) { -100 }
def subtrai(a,b) { -100 }
def divide(a,b) { -100 }
}
Para executar os testes, é só digitar groovy GroovyCalcTest na linha de comando. Todos os testes irão falhar, e você receberá uma saída como esta abaixo. Saliento que, por questões de espaço (a saída completa tem 273 linhas!), omiti as linhas de "debug" do Java, deixando apenas as 3 primeiras do erro 1 (linhas 5 a 8).
class GroovyCalcTest extends GroovyTestCase {
def calc
void setUp() {
calc = new GroovyCalc()
}
void testSoma3mais2igual5() {
assert 5 == calc.soma(3,2)
}
void testMultiplica3por2igual6() {
assert 6 == calc.multiplica(3,2): "2 multiplicado por 3 deveria ser 6"
}
void testSubtrai() {
assertEquals 1, calc.subtrai(3,2)
}
void testDivide3por2igual1eMeio() {
assertEquals "3 dividido por 2 deveria ser 1.5", 1.5, calc.divide(3,2)
}
void testDivisaoPor0geraExcecaoForma1() {
try {
def result = calc.divide (3, 0)
} catch(ArithmeticException e) {
return;
}
fail();
}
void testDivisaoPor0geraExcecaoForma2() {
try {
def result = calc.divide (3, 0)
} catch(java.lang.ArithmeticException e) {
assertEquals("/ by zero", e.getMessage());
return;
}
fail("Divisão por 0 deveria lançar ArithmeticException '/ by zero'");
}
void testDivisaoPor0geraExcecaoForma3() {
shouldFail(ArithmeticException) {
def result = calc.divide (3, 0)
}
}
void testDivisaoPor0geraExcecaoForma4() {
def msg = shouldFail(ArithmeticException) {
def result = calc.divide (3, 0)
}
assertTrue msg == "/ by zero"
}
}
.E.E.F.F.F.F.F.F
Time: 0,016
There were 2 errors:
1) testSoma3mais2igual5(GroovyCalcTest)java.lang.AssertionError: Expression: (5 == calc.soma(3, 2))
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:394)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:676)
at GroovyCalcTest.testSoma3mais2igual5(GroovyCalcTest.groovy:9)
...
2) testMultiplica3por2igual6(GroovyCalcTest)java.lang.AssertionError: 2 multiplicado por 3 deveria ser 6. Expression: (6 == calc.multiplica(3, 2))
There were 6 failures:
1) testSubtrai(GroovyCalcTest)junit.framework.AssertionFailedError: expected:<1> but was:<-100>
2) testDivide3por2igual1eMeio(GroovyCalcTest)junit.framework.AssertionFailedError: 3 dividido por 2 deveria ser 1.5 expected:<1.5> but was:<-100>
3) testDivisaoPor0geraExcecaoForma1(GroovyCalcTest)junit.framework.AssertionFailedError: null
4) testDivisaoPor0geraExcecaoForma2(GroovyCalcTest)junit.framework.AssertionFailedError: Divisão por 0 deveria lançar ArithmeticException '/ by zero'
5) testDivisaoPor0geraExcecaoForma3(GroovyCalcTest)junit.framework.AssertionFailedError: Closure GroovyCalcTest$_testDivisaoPor0geraExcecaoForma3_closure1@df1832 should have failed with an exception of type java.lang.ArithmeticException
6) testDivisaoPor0geraExcecaoForma4(GroovyCalcTest)junit.framework.AssertionFailedError: Closure GroovyCalcTest$_testDivisaoPor0geraExcecaoForma4_closure2@1576e70 should have failed with an exception of type java.lang.ArithmeticException
FAILURES!!!
Tests run: 8, Failures: 6, Errors: 2
class GroovyCalc {
def soma(a,b) { a + b }
def multiplica(a,b) { a * b }
def subtrai(a,b) { soma(a, -1*b) }
def divide(a,b) { multiplica(a,1/b) }
}
$ groovy GroovyCalcTest
........
Time: 0,023
OK (8 tests)
Copyrights @ 2013, BrandMag Blogger Template - Designed By Templateism | Templatelib