Boa tarde pessoal,
Nos dias de hoje se fala muito de uma técnica de desenvolvimento que se chama TDD(Test Driven Development), onde o desenvolvedor antes de implementar seu código ele cria o teste, para posteriormente criar seu código baseado no test.E a partir do AX 4.0 a Microsoft implementou um framework para ajudar neste tipo de metodologia se chama “SysTest”.
SysTest
Systest é um framework de UnitTest, e quem ja trabalhou com o JUnit ou o UnitTest entre outros não terá muita dificuldade.
Principais características / objetivos:
- É muito rápido
- Oferece rico conjunto de “afirmar” métodos
- Suporta teste de exceções (esperado exceções)
- Suporta transações (testes podem ser colocadas dentro de uma transação de banco de dados que é abortado no final)
- Ele suporta contas da empresa (os testes podem ser colocadas dentro de uma empresa independente que conta é eliminada no final do teste)
- Suporta suítes de testes
- Suporta a inserção e deletar método para suíte que é executado antes do primeiro método e depois do último.
- Suporta a cobertura de código
- Ferramentas para execução rápida Test Suite
Vou colocar abaixo um exemplo de utilização do framework SysTest:
Antes de tudo você deve habilitar a barra de ferramentas especial do framework, Ferramentas> Ferramentas de Desenvolvimento>Teste da unidade>Mostrar barra de ferramenta.
Com a barra visível vamos aos códigos…
Crie uma classe que extenda a classe SysTestCase, que é a classe onde existem os “Casos de teste”.
OBS:Após a criação de um novo método, coloque o nome da sua classe na barra de ferramentas do framework e clique em excecutar, para execução dos testes.
1
2
3
4
5
| //Inicio <DynamicsAxBR>
class SampleTest extends SysTestCase
{
}
//Fim <DynamicsAxBR> |
Vamos ao primeiro teste, crie um novo método e coloque o seguinte:
1
2
3
4
5
6
7
| //Inicio <DynamicsAxBR>
public void testConversion()
{
this.assertEquals('1', int2str(1));
this.assertEquals('5', int2str(5));
}
//Fim <DynamicsAxBR> |
No método acima validamos os valores, utilizando o método “AssertEquals” que o primeiro parâmetro é o valor que se deseja e o segundo é o valor que se quer testar.
Também podemos trabalhar “Exceptions” no como foi falado acima, então vamos criar um método para testar uma exception.
1
2
3
4
5
6
7
| //Inicio <DynamicsAxBR>
public void testExpectedException()
{
this.parmExceptionExpected(true);
throw Exception::Error;
}
//Fim <DynamicsAxBR> |
Por fim vamos criar um método que retorne com falhas para olharmos como são tratados os erros:
1
2
3
4
5
6
| //Inicio <DynamicsAxBR>
public void testFailure()
{
this.assertEquals("0", int2str(123));
}
//Fim <DynamicsAxBR> |
Este foi um pequeno exemplo de classe utilizando o SysTest framework, estarei estudando um pouco mais sobre esta técnica que pode ajudar no desenvolvimento e estarei postando aqui para todos.
PS: Para mais informações acesse aqui o msdn.
Até a próxima,
Peterson Ferreira