Para atingir estes objetivos, vamos passar por os seguintes passos:
1. Criar a aplicação welcome
2. Entender a estrutura de diretórios da aplicação
3. Criar um controller básico
4. Escrever algo para mostrar ao usuário
5. Testar o código escrito
6. Rodar a aplicação
Em apenas 5 minutinhos vamos ter uma aplicação rodando!!!
Criando a aplicação
Pareçe fácil?
E é sim! Primeiramente vamos rodar o comando create-app para criar nossa aplicação.
grails create-app welcomeO próximo passo é navegar até a pasta criada para a nossa primeira aplicação.
cd welcomeDe uma olhada na estrutura de pastas. Mais para frente vamos entender perfeitamente qual o objetivo de cada uma delas, mas por hora você deve saber que
a sua aplicação vai conter as seguintes pastas:
+conf +controllers +domain +i18n +services +taglib +utils +views +lib +scripts +src +test +web-appSe tiver curiosidade, pesquise na documentação do Grails para entender qual a funcionalidade de cada uma, mas elas já são bastante descritivas.
Criando um controller
O Grails é um framework MVC, o que significa que tem modelos, visualizações e controllers para separar as responsabilidades devidamente. Os controllers,
que são a parte central de uma aplicação Grails, podem facilmente ordenar requests, entregar respostas, e delegá-las para visualizações. Vamos mostrar como criar um controller básico.
grails create-controller cadastroAgora encoste na cadeira enquanto o Grails faz o resto.
Depois de finalizado este passo, o Grails criou duas novas classes para você. A CadastroController dentro da pasta grails-app/controllers e um teste associado a esta classe, dentro da pasta test/unit.
Toda linguagem dinâmica, como o Groovy, Ruby e Python, não dão muito suporte a excessões em tempo de compilação, o que faz com que teste sejam extremamente necessários.
Mostrando uma mensagem
Vamos abrir a nossa classe controller. Por padrão, o Grails cria um controller dentro da classe e o chama de index. A ação index, por convenção, é a ação padrão de qualquer controller.
class WelcomeController {
def index = {}
}
Esta ação ainda não faz nada, mas por convenção ela diz ao Grails renderizar a view chamada grails-app/views/welcome/index.gs automaticamente.Depois estudaremos views mais a fundo, não se preocupe muito com isso agora.
Todos os controllers Grails vem com um pacote de métodos embutidos, vistos mais tarde, e um deles é chamado render, um método de vários propósitos, que,
entre outras coisas, pode renderizar um resposta simples de texto.
class WelcomeController {
def index = { render "Olá, seja muito bem vindo!" }
}
Testando o código
Vamos abrir a classe que foi anteriormente criada para o teste unitário.
O conteúdo é o seguinte:
class WelcomeControllerTests extends grails.test.ControllerUnitTestCase {
void testSomething() {
}
}
O Grails é separado em testes unitários e de integração. Entenda testes de integração como testes de ambiente, que testam do banco ao visual, e tendem a rodarmais lentamente. Do outro lado, testes unitários são desenvolvidos para serem rápidos, mas exigem uso de mocks e stubs.
Stubs são classes que imitam o comportamento real do objeto, retornando códigos geralmente definidos de forma "hard-coded". Mocks fazem essencialmente a mesma coisa,
mas são um pouco mais inteligentes pois possuem "expectativas". Por exemplo, um mock pode expecificar que ele espera que um determinado método seja chamado ao menos uma vez, ou até dez vezes se necessário.
Neste ponto, vamos criar um teste unitário para confirmar o texto renderizado por nosso controller.
class StoreControllerTests extends grails.test.ControllerUnitTestCase {
void testRenderHomePage() {
controller.index()
assertEquals "Olá, seja muito bem vindo!", controller.response.contentAsString
}
}
O que estamos fazendo é utilizar as capacidades do Grails para validar o conteúdo retornado pelo controller.Rodando os testes
Para rodar os testes, você deve executar o seguinte comando:
grails test-appEste comando irá executar todos os testes da aplicação e salvar os resultados na pasta test/reports.
Rodando a aplicação
Para este passo final, execute:
grails run-appE pronto, agora é só navegar para http://localhost:8080/welcome
Lá você vai ver uma lista de todos os controllers da aplicação (isso é customizável, depois aprenderemos).
Clique no seu controller e veja o resultado.
Sucesso!
Espero que aproveitem.
Abraços!
