Download the PHP package pandora-una/pandora-testes without Composer

On this page you can find all versions of the php package pandora-una/pandora-testes. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package pandora-testes

pandora-testes

Este repositório contém ferramentas para facilitar a criação de testes de aceitação usando Behat com MinkExtension e WebApiExtension em aplicações feitas em Zend Framework 2 e Doctrine 2. As ferramentas são:

Instalação

A forma recomendada de instalação é por composer:

Binários

Behat já possui um binário para rodar os testes, porém o Zend Framework 2 não dá suporte para a separação entre um ambiente de teste e um de desenvolvimento separados de forma simples. Portanto foi necessário criar um script para facilitar a execução dos testes e para evitar erros. É necessário apenas o seguinte comando para rodar os testes:

O script aceita as mesmas opções que o binário do behat, o seguinte comando lista as opções:

Caso os testes necessitem de Selenium2 rodando em background, o seguinte comando tem a função de inicializá-lo:

Configurações Opcionais

Abaixo temos um exemplo de uma configuração mais completa:

Os campos acima tem os seguintes efeitos:

Doctrine Fixtures

Uma importante função deste repositório é facilitar a criação de entidades na base de teste de forma simples e dinâmica através de fixtures como essa:

Parâmetros

Como pode ser visto no exemplo anterior, uma fixture deve difinir seus atributos básicos. Os atributos com valores simples, ou seja, que não fazem referência à outras entidades devem ser informados no atributo params. Este campo deve conter um hash no qual a chave indica o nome do atributo e o valor indica o valor do atributo.

Para o exemplo da nossa fixture de usuário, as chaves do array são pensadas de forma a “casar” com os métodos de acesso do Doctrine, ou seja, durante a criação da entidade a biblioteca executará os seguintes comandos para a criação de um usuário:

Por isso, é importante que as chaves sejam as mesmas que os campos da entidade e que os métodos de acesso existam.

Algumas vezes o valor de um atributo não é tão simples quanto apenas um número ou uma string e é necessário fazer algum tratamento para gerar o valor (valores temporais são os mais comuns nessa categoria). Para isso é necessário definir um callback da seguinte forma:

Assim a factory da fixture vai chamar a função definida na chave callback com o parâmetro definido na chave value. o callback aceita tudo que a função nativa "call_user_func" aceita no seu primeiro parâmetro.

Associações

Quando uma fixture faz referência a outra entidade, é possível fazer referência a uma outra fixture. Assumindo que exista uma fixture como essa:

Para criar a associação é preciso instanciar um novo campo de nossa fixture como neste exemplo:

A chave do array faz referência ao campo da entidade do doctrine (Neste caso o método setTipo() será invocado) e o valor faz referência ao nome simples da classe da fixture, mas com a primeira letra minúscula. então “tipoUsuario” é o nome da fixture cuja classe é “Application/Fixture/TipoUsuario”. Obviamente é possível fazer inúmeras associações

Aspectos

Provavelmente nos seus testes você precisará de diferentes versões de uma mesma entidade, ou de instâncias diferentes de uma mesma entidade, isso é feito com aspectos.

Para criar um aspecto é necessário instânciar mais um novo campo de nossa fixture, o campo traits. Vamos supor que você queira um “segundo” usuário para o seus testes, a fixture ficaria assim:

As chaves do array do atributo trait se referem aos nomes dos aspectos. É sugerido que sejam utilizados adjetivos para o nome, pois ficará mais claro nos testes de aceitação a diferência entre as duas instâncias. É importante notar que a única diferença entre o “segundo usuário” e o nosso usuário original é o email, todos os outros campos são preenchidos com os mesmos valores.

Os aspectos também podem ter associações diferentes da fixture base. Seja a fixture tipoUsuario desta forma:

Então um aspecto para um usuário administrador com uma senha diferente fica assim:

É importante notar que o aspecto vem antes do nome da fixture. Isso porque os testes de aceitação são escritos em inglês. Além disso, apesar de não ser o mais comum, também está correto em português.

Caso você queira que o usuário administrador também tenha um email diferente, não é necessário alterar a fixture, pois é possível concatenar os aspectos. a fixture “segundo administrador usuario” cria um usuário com os seguintes parâmetros (no formato json):

Algumas vezes precisamos de modificações mais simples na fixture original, ou então um grande número de entidades com modificações no mesmo campo. Para simplificar uma trait pode ser escrita da seguinte forma: :. Para dar um exemplo, suponha que em um teste seja necessário criar quatro usuários com emails diferentes, ao invés de declarar quatro traits que alteram apenas o email, as fixtures "usuario", "email:[email protected] usuario", "email:[email protected] usuario", "email:[email protected] usuario" já resolvem o problema.

Passos de Testes

Este repositório contém um contexto de Behat com passos customizados.

Configuração do Behat

Para utilizar os passos da biblioteca é importante declarar o contexto da pandora, assim como o do Mink, caso queira usar os passos relacionados com requisições Ajax. Uma configuração exemplo é a seguinte:

Para usar o contexto deste repoistório a classe FeatureContext deve extender a classe PandoraContext, pois é necessário extender o método estático initializeZendFramework responsável por iniciar a aplicação. Segue um exemplo:

Criação de Entidades

Para utilizar as fixtures descritas na sessão anterior este repositório tem o seguinte passo de teste:

Este passo cria as entidades necessárias para o teste, como no exemplo abaixo.

Perceba que o parâmetro do passo segue a mesma estrutura de quando referenciamos uma fixture nos aspectos, ou seja, primeiro os aspectos (adjetivos), depois o nome da fixture.

Alteração de Entidades

Para alterar uma fixture já carregada use este paddo

Este passo altera uma entidade já criada. O valor é passado para a entidade como uma string com a excessão de "null" e "false"

Passos Adicionais

Além do passo de criação de entidades, essa biblioteca contém outros passos adicionais.

Passos de API

Then the response should contain json with this format:

Mais em breve ...

Expansões do PHPMatcher

Count

Verifica se um array contém um certo número de elementos.

exemplo:

panToday

Verifica se uma data tem um valor relativo a data de execução do teste. o formato é o mesmo do que o método \DateTime::modify

exemplo:


All versions of pandora-testes with dependencies

PHP Build Version
Package Version
Requires php Version >=5.3.3
zendframework/zendframework Version >=2.1.5
doctrine/doctrine-module Version >=0.9.0
doctrine/doctrine-orm-module Version >=0.9.0
doctrine/data-fixtures Version 1.*
behat/web-api-extension Version dev-master
behat/mink-extension Version ^2.0@dev
behat/mink-selenium2-driver Version ~1.3.1
coduo/php-matcher Version 2.0.1
behat/mink Version 1.7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package pandora-una/pandora-testes contains the following files

Loading the files please wait ....