Entendo um pouco sobre quem são

Ruby é uma linguagem de programação poderosa e flexível que você pode usar no desenvolvimento web, para processar textos, criar jogos, e como parte de uma ferramenta web muito popular, chamada Ruby on Rails. Ruby é:

  • Alto nível, o que significa que a leitura e a escrita em Ruby é realmente fácil — parece muito com o idioma inglês!

  • Interpretada, o que significa que você não precisa de um compilador para codificar e executar seus programas em Ruby. Você pode programar na Codecademy ou até mesmo no seu computador (muitos já contém o interpretador Ruby embarcado.

  • Orientada a objetos, o que significa que ela permite que os usuários manipulem estruturas de dados chamadas objetos para criar e executar programas. Vamos aprender mais sobre objetos depois, mas por enquanto, tudo o que você precisa saber é que absolutamente tudo em Ruby é um objeto.

  • Fácil de usar, Ruby foi desenvolvido por Yukihiro Matsumoto (frequentemente chamado de “Matz”) em 1995. Matz se concentrou em desenvolver uma linguagem que enfatiza as necessidades humanas ao invés das necessidades do computador, o que é o motivo de Ruby ser tão fácil de compreender.

0_1501682059296_e28d2416-6b31-41b3-8941-4247d2d6b250-image.png

Cucumber é uma ferramenta que suporta Behavior Driven Development (BDD), que consiste em descrever o comportamento de um usuário. Dessa forma, as necessidades reais do usuário são descritas.

Cucumber é usado para descrever o valor do negócio em uma linguagem natural, por isso permite que equipes de desenvolvimento de software descrevam como o software deve se comportar em texto simples, escrevendo especificações através de exemplos. Uma boa vantagem de escrever especificações com Cucumber é que qualquer um na equipe consegue ler e entender as especificações em texto simples — de pessoas de negócios a desenvolvedores de software.

Além disso, ele ajuda a obter feedback dos stakeholders de negócios sobre se a equipe vai construir a coisa certa antes mesmo de começar. Ele também ajuda a equipe a fazer um esforço intencional para desenvolver uma linguagem ubíqua compartilhada para falar sobre o sistema. Outra vantagem é que a especificação é uma documentação viva, porque apesar de ser escrita em texto simples, origina testes automatizados executáveis.

A estrutura que o Cucumber usa para as especificações é o formato Given/When/Then em conformidade com gramática da linguagem Gherkin. A parte Given (Dado) descreve uma pré-condição existente do estado de software antes de começar o comportamento que você está especificando. A seção When (Quando) é o próprio comportamento. O Then (Então) descreve o resultado esperado do comportamento. Por exemplo: Dado que me inscrevi para Loja de Livros Online, quando eu acesso a loja com minhas credenciais, então vejo uma mensagem “Bem-vinda à Loja de Livros Online!”.

0_1501682136914_2e2e3b6a-804f-474c-bddd-25cef9618ecc-image.png

Capybara é um framework de Testes de aceitação para aplicações web. Com ele é possível testar que dado o input A a aplicação deve retornar o output B. Mas precisamente com Capybara se submeto o form de login informando o usuário e senha válidos a aplicação deve me redirecionar para a página de usuário logado.

Os comandos são uma linguagem de domínio específico do framework Capybara, desta forma, ao substituir o driver, os comandos não mudam.

Por padrão, o driver utilizado pelo Capybara é o RakeTest, driver usado para testar aplicações que possuem interface Rake (Rails, Sinatra e outros Frameworks Ruby), escrito puramente em Ruby. Um driver rápido, mas limitado, pois não há suporte a Javascript e nem a aplicações que não possuem interface Rake.

0_1501682172559_dd476dec-ac3b-4787-ad56-a6545163f42a-image.png