Dependency injection not working during tests
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 25/100
Direção de pesquisa
Comece pelo teste de UserController e pela configuração de injeção de dependência mostrada na issue; em seguida, rastreie como QueryService é resolvido durante o teste. Reproduza a chamada do mock que falhou e compare o container usado pelo controller com o container que está sendo modificado. Está concluído quando o controller recebe o QueryService simulado e o teste verifica o objeto retornado esperado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hello guys. I have a controller called UserController. And i have a UserService that call getById method that returns some object. How can i mock this call when i test UserController?
I tries this code
` /** @var \Hyperf\Di\Container $c */
$c = \Hyperf\Utils\ApplicationContext::getContainer();
$queryServiceMock = $this->createMock(QueryService::class);
$queryServiceMock->method('appByKeyAndDomain')->willReturn((object)[
'id' => 1,
'key' => 'test',
'timezone' => 'UTC'
]);
$c->set(QueryService::class, $queryServiceMock);
\Hyperf\Utils\ApplicationContext::setContainer($c);`
but it would not work.
- Linguagem predominante
- PHP
- Estrelas
- 307
- Forks
- 131
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de hyperf/hyperf-skeleton
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 30/100
hyperf/hyperf-skeleton#106 · 1 comentário ·
Todas as issues de hyperf/hyperf-skeleton
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 3 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 91/100
benjaminkott/bootstrap_package#1675 ·
-
sync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia