O que é TestObject?
O TestObject é uma classe fornecida pelo Symfony que permite criar instâncias de objetos com valores predefinidos para serem usados em testes unitários. Em vez de criar manualmente esses objetos em cada teste, o TestObject permite defini-los uma vez e reutilizá-los em diversos testes.
Como instanciar um TestObject?
Para instanciar um TestObject, é preciso criar uma classe que estenda a classe TestObject
e implementar o método configure()
. Nesse método, é possível definir quais propriedades do objeto serão preenchidas e com quais valores.
Como definir uma propriedade do objeto?
Para definir uma propriedade do objeto, é possível chamar o método setProperty()
no método configure()
. O primeiro parâmetro desse método deve ser o nome da propriedade e o segundo parâmetro deve ser o valor que essa propriedade deve ter.
Como definir uma propriedade com valor randômico?
Para definir uma propriedade com valor randômico, é possível chamar o método setRandom()
no método configure()
. O primeiro parâmetro desse método deve ser o nome da propriedade e o segundo parâmetro deve ser um array com as opções de valores randômicos que essa propriedade pode ter.
Como definir uma propriedade do tipo relacionamento?
Para definir uma propriedade do tipo relacionamento, é possível chamar o método setProperty()
no método configure()
, passando como valor para a propriedade outra instância de TestObject. Isso fará com que o relacionamento seja criado automaticamente.
Como instanciar um objeto usando um TestObject?
Para instanciar um objeto usando um TestObject, é possível chamar o método create()
do TestObject, passando como parâmetro uma instância do EntityManager de Doctrine. Esse método retornará uma instância do objeto preenchida de acordo com as definições do TestObject.
Como reutilizar um TestObject em diversos testes?
Para reutilizar um TestObject em diversos testes, é possível definir sua instância como uma propriedade da classe de testes e criar um método setUp()
que a instancia. Dessa forma, essa instância será compartilhada por todos os testes.
Como definir uma classe pai para um TestObject?
Para definir uma classe pai para um TestObject, é possível chamar o método extend()
no método configure()
, passando como parâmetro a classe pai. Dessa forma, o TestObject herda as propriedades da classe pai e pode definir novas ou sobrescrever as existentes.
Como redefinir uma propriedade herdada de uma classe pai?
Para redefinir uma propriedade herdada de uma classe pai, basta chamar o método setProperty()
no método configure()
do TestObject filho, passando o nome da propriedade e o novo valor.
Como definir valores padrão para propriedades de um TestObject?
Para definir valores padrão para propriedades de um TestObject, é possível definir esses valores dentro do método configure()
, utilizando a sintaxe de array do PHP para atribuir valores a chaves.