<?php namespace spec\App\Repositories; use Laracasts\TestDummy\Factory; use PhpSpec\ObjectBehavior; use Prophecy\Argument; class ProgramRepositorySpec extends ObjectBehavior { function it_is_initializable() { $this->shouldHaveType('App\Repositories\ProgramRepository'); } function it_returns_empty_collection() { $this->getActivePrograms()->shouldHaveCount(0); } function it_returns_only_active_programs() { Factory::times(3)->build('App/Program'); $this->getActivePrograms()->shouldHaveCount(3); } }
i repozytorium do testu:
<?php namespace App\Repositories; use App\Program; class ProgramRepository { public function getActivePrograms() { return Program::active()->get(); } }
Po odpaleniu requestu jest ok, po odpaleniu phpSpec dostaję stack z błędami:
Kod
PHP Fatal error: Call to a member function connection() on a non-object in /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 3155
PHP Stack trace:
PHP 1. {main}() /home/testDummy/.composer/vendor/phpspec/phpspec/bin/phpspec:0
PHP 2. Symfony\Component\Console\Application->run() /home/testDummy/.composer/vendor/phpspec/phpspec/bin/phpspec:26
PHP 3. PhpSpec\Console\Application->doRun() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP 4. Symfony\Component\Console\Application->doRun() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Console/Application.php:75
PHP 5. Symfony\Component\Console\Application->doRunCommand() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP 6. Symfony\Component\Console\Command\Command->run() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:882
PHP 7. PhpSpec\Console\Command\RunCommand->execute() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
PHP 8. PhpSpec\Runner\SuiteRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Console/Command/RunCommand.php:113
PHP 9. PhpSpec\Runner\SpecificationRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/SuiteRunner.php:56
PHP 10. PhpSpec\Runner\ExampleRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/SpecificationRunner.php:54
PHP 11. PhpSpec\Runner\ExampleRunner->executeExample() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:80
PHP 12. ReflectionMethod->invokeArgs() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:141
PHP 13. spec\MyLead\Repositories\ProgramRepositorySpec->it_returns_empty_collection() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:141
PHP 14. spec\MyLead\Repositories\ProgramRepositorySpec->getActivePrograms() /home/testDummy/Code/application.app/spec/Repositories/ProgramRepositorySpec.php:18
PHP 15. PhpSpec\ObjectBehavior->__call() /home/testDummy/Code/application.app/spec/Repositories/ProgramRepositorySpec.php:18
PHP 16. call_user_func_array() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:136
PHP 17. PhpSpec\Wrapper\Subject->getActivePrograms() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:136
PHP 18. PhpSpec\Wrapper\Subject->__call() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:0
PHP 19. PhpSpec\Wrapper\Subject\Caller->call() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject.php:188
PHP 20. PhpSpec\Wrapper\Subject\Caller->invokeAndWrapMethodResult() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:89
PHP 21. call_user_func_array() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:256
PHP 22. MyLead\Repositories\ProgramRepository->getActivePrograms() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:256
PHP 23. MyLead\Program::active() /home/testDummy/Code/application.app/app/Repositories/ProgramRepository.php:9
PHP 24. Illuminate\Database\Eloquent\Model::__callStatic() /home/testDummy/Code/application.app/app/Repositories/ProgramRepository.php:9
PHP 25. call_user_func_array() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3358
PHP 26. MyLead\Program->active() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3358
PHP 27. Illuminate\Database\Eloquent\Model->__call() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:0
PHP 28. Illuminate\Database\Eloquent\Model->newQuery() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3342
PHP 29. Illuminate\Database\Eloquent\Model->newQueryWithoutScopes() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1833
PHP 30. Illuminate\Database\Eloquent\Model->newBaseQueryBuilder() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1859
PHP 31. Illuminate\Database\Eloquent\Model->getConnection() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1918
PHP 32. Illuminate\Database\Eloquent\Model::resolveConnection() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3121
PHP Stack trace:
PHP 1. {main}() /home/testDummy/.composer/vendor/phpspec/phpspec/bin/phpspec:0
PHP 2. Symfony\Component\Console\Application->run() /home/testDummy/.composer/vendor/phpspec/phpspec/bin/phpspec:26
PHP 3. PhpSpec\Console\Application->doRun() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP 4. Symfony\Component\Console\Application->doRun() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Console/Application.php:75
PHP 5. Symfony\Component\Console\Application->doRunCommand() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP 6. Symfony\Component\Console\Command\Command->run() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Application.php:882
PHP 7. PhpSpec\Console\Command\RunCommand->execute() /home/testDummy/.composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
PHP 8. PhpSpec\Runner\SuiteRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Console/Command/RunCommand.php:113
PHP 9. PhpSpec\Runner\SpecificationRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/SuiteRunner.php:56
PHP 10. PhpSpec\Runner\ExampleRunner->run() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/SpecificationRunner.php:54
PHP 11. PhpSpec\Runner\ExampleRunner->executeExample() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:80
PHP 12. ReflectionMethod->invokeArgs() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:141
PHP 13. spec\MyLead\Repositories\ProgramRepositorySpec->it_returns_empty_collection() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Runner/ExampleRunner.php:141
PHP 14. spec\MyLead\Repositories\ProgramRepositorySpec->getActivePrograms() /home/testDummy/Code/application.app/spec/Repositories/ProgramRepositorySpec.php:18
PHP 15. PhpSpec\ObjectBehavior->__call() /home/testDummy/Code/application.app/spec/Repositories/ProgramRepositorySpec.php:18
PHP 16. call_user_func_array() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:136
PHP 17. PhpSpec\Wrapper\Subject->getActivePrograms() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:136
PHP 18. PhpSpec\Wrapper\Subject->__call() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/ObjectBehavior.php:0
PHP 19. PhpSpec\Wrapper\Subject\Caller->call() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject.php:188
PHP 20. PhpSpec\Wrapper\Subject\Caller->invokeAndWrapMethodResult() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:89
PHP 21. call_user_func_array() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:256
PHP 22. MyLead\Repositories\ProgramRepository->getActivePrograms() /home/testDummy/.composer/vendor/phpspec/phpspec/src/PhpSpec/Wrapper/Subject/Caller.php:256
PHP 23. MyLead\Program::active() /home/testDummy/Code/application.app/app/Repositories/ProgramRepository.php:9
PHP 24. Illuminate\Database\Eloquent\Model::__callStatic() /home/testDummy/Code/application.app/app/Repositories/ProgramRepository.php:9
PHP 25. call_user_func_array() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3358
PHP 26. MyLead\Program->active() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3358
PHP 27. Illuminate\Database\Eloquent\Model->__call() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:0
PHP 28. Illuminate\Database\Eloquent\Model->newQuery() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3342
PHP 29. Illuminate\Database\Eloquent\Model->newQueryWithoutScopes() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1833
PHP 30. Illuminate\Database\Eloquent\Model->newBaseQueryBuilder() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1859
PHP 31. Illuminate\Database\Eloquent\Model->getConnection() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1918
PHP 32. Illuminate\Database\Eloquent\Model::resolveConnection() /home/testDummy/Code/application.app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3121
Wersja Laravela najnowsza z gałęzi dev. W domyśle mam że to jakiś problem ze startowaniem aplikacji laravela przez spec'a, ale nie udało mi się póki co znaleźć rozwiązania. Może ktoś, coś?