Below you will find pages that utilize the taxonomy term “testes”
Posts
Polibot
polibot é um pequeno projeto demonstrando como testar um equipamento fictício utilizando Erlang e o framework common_test.
Durante este post, vamos exercitar um cenário e construir uma solução para testes sistêmicos.
O código do projeto foi disponibilizado aqui: polibot
Geometric Box System O nome do equipamento é Geometric Box System (GBS) e possui três principais tipos de hardwares, onde cada hardware é composto por uma placa processadora e alguns devices para realizar determinadas operações.
Posts
Vamos testar: exunit
ExUnit é o framework padrão quando falamos de testes em Elixir. Ele é simples e ao mesmo tempo poderoso.
Todos os testes em Elixir ficam separados da implementação, geralmente no diretório test. Todos os arquivos teste diretório que seguem o padrão de nome: <nome do teste>_test.exs são compilados e executados como testes pelo comando mix test.
Cada teste é implementado dentro de um módulo normal no usa as macros contidas no ExUnit.
Posts
Elixir: mocks, stubs
As duas abordagens abaixo servem para configurar um projeto para utilizar mocks durante os testes.
Abordagem 1: mocks sem ajuda O arquivo mix.exs deve ser ajustado acrescentando um diretório adicional para a propriedade elixirc_paths:
def project do [app: :coffee_fsm, version: "0.1.0", elixir: "~> 1.4", elixirc_paths: elixirc_paths(Mix.env), build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, deps: deps()] end def application do # Specify extra applications you'll use from Erlang/Elixir [extra_applications: [:logger]] end defp elixirc*paths(:test), do: ["lib","test/support"] defp elixirc_paths(*), do: ["lib"] Quando MIX_ENV for test a função elixirc_paths/1 retorna uma lista com dois diretórios onde existe código Elixir para ser compilado.
Posts
Vamos testar: lux
lux é um framework para automação de testes utilizando o estilo Expect (https://en.wikipedia.org/wiki/Expect, https://core.tcl-lang.org/expect/index).
A ideia básica é a definição de um script contendo os comandos usados para testar alguma aplicação e tambem colocando algumas marcações no script que irão controlar o lux.
Este framework provê mecanismos de fazer uma automação de testes, ou seja, aqueles comandos que são utilizados para testar alguma aplicação podem ser escritos em uma forma bem simples nos quais o lux vai controlar a execução.
Posts
Vamos testar: common_test
common_test é uma das aplicações mais interessantes que acompanha a distribuição Erlang/OTP. Digo isso pois os casos de uso que a ferramenta resolve são baseados em casos reais da indústria. Podemos realizar vários tipos de testes, por exemplo:
black-box, utilizando algum protocolo de comunicação: ssh, netconf, telnet, ftp white-box, para testar aplicações escritas em Erlang ou Elixir, fazendo chamadas reais unit tests, há vários projetos que utilizam somente o common_test para implementar todos os testes necessários É possível criar suites de testes com várias formas de execução dos testes e organização.
Posts
Vamos testar: eunit
eunit é um framework para testes leves e parte da distribuição Erlang/OTP padrão.
Os testes podem ser definidos dentro de cada módulo, dentro de blocos
-ifdef(EUNIT). % test code here ... -endif. Ou em arquivos separados, geralmente dentro do diretório test, em uma base de código.
A filosofia do framework segue a linha XUnit, mas adaptado para o conceito funcional.
Vejo duas principais vantagens para definir os testes dentro de módulos: