۳ روح الله طالبیان
تست ایجاد کاربر با خطای 500
جامعه پی اچ پی ایجاد شده در ۱۵ اسفند ۱۴۰۰

درود و خدا قوت ؛ بنده زمانی که میخواهم تست ایجاد کاربر رو اجرا کنم با خطا روبرو میشم و زمانی که construct و ولیدیشن و اجرای متد create رو به حالت کامنت درمیارم تست‌های قبلی من پاس میشن دقیقا منظورم اینها هست

class UsersController extends Controller
{   
    public function __construct(private UserRepositoryInterface $userRepository)
    {
    }
    public function store(Request $request)
    {
         $this->validate($request, [
             'fullname' => 'required|string|min:3|max:255',
             'email' => 'required|email',
             'mobile'=>'required|srting',
             'password' => 'required',
         ]);
        
         $this->userRepository->create($request->toArray());

خطای من هم این هست

PS C:\\xampp\\htdocs\\dashboard\\Azmoon> ./vendor/bin/phpunit
PHPUnit 9.5.13 by Sebastian Bergmann and contributors.
F.                                                                  2 / 2 (100%)
Time: 00:02.044, Memory: 12.00 MB
There was 1 failure:
1) API\\V1\\Users\\UsersTest::test_should_create_a_new_user
Failed asserting that 500 matches expected 201.
C:\\xampp\\htdocs\\dashboard\\Azmoon\\tests\\API\\V1\\Users\\UsersTest.php:18
FAILURES!
Tests: 2, Assertions: 2, Failures: 1.
PS C:\\xampp\\htdocs\\dashboard\\Azmoon> ./vendor/bin/phpunit
PHPUnit 9.5.13 by Sebastian Bergmann and contributors.
F.                                                                  2 / 2 (100%)
Time: 00:01.399, Memory: 12.00 MB
There was 1 failure:
1) API\\V1\\Users\\UsersTest::test_should_create_a_new_user
Failed asserting that 500 matches expected 201.
C:\\xampp\\htdocs\\dashboard\\Azmoon\\tests\\API\\V1\\Users\\UsersTest.php:18
FAILURES!
Tests: 2, Assertions: 2, Failures: 1.

لاگ هم بررسی کردم با چیز خاصی روبرو نشدم

[2022-03-06 10:30:27] testing.ERROR: Target [App\\repositories\\contracts\\UserRepositoryInterface] is not instantiable while building [App\\Http\\Controllers\\API\\V1\\UsersController]. {"exception":"[object] (Illuminate\\\\Contracts\\\\Container\\\\BindingResolutionException(code: 0): Target [App\\
epositories\\\\contracts\\\\UserRepositoryInterface] is not instantiable while building [App\\\\Http\\\\Controllers\\\\API\\\\V1\\\\UsersController]. at C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php:1093)
[stacktrace]
#0 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(886): Illuminate\\\\Container\\\\Container->notInstantiable('App\\\\\\
epositorie...')
#1 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\
epositorie...')
#2 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\
epositorie...', Array)
#3 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\
epositorie...', Array)
#4 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(1031): Laravel\\\\Lumen\\\\Application->make('App\\\\\\
epositorie...')
#5 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(951): Illuminate\\\\Container\\\\Container->resolveClass(Object(ReflectionParameter))
#6 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(912): Illuminate\\\\Container\\\\Container->resolveDependencies(Array)
#7 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\\\Http\\\\\\\\Contro...')
#8 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#9 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#10 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(324): Laravel\\\\Lumen\\\\Application->make('App\\\\\\\\Http\\\\\\\\Contro...')
#11 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(282): Laravel\\\\Lumen\\\\Application->callControllerAction(Array)
#12 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(267): Laravel\\\\Lumen\\\\Application->callActionOnArrayBasedRoute(Array)
#13 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(169): Laravel\\\\Lumen\\\\Application->handleFoundRoute(Array)
#14 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(429): Laravel\\\\Lumen\\\\Application->Laravel\\\\Lumen\\\\Concerns\\\\{closure}(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#15 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(175): Laravel\\\\Lumen\\\\Application->sendThroughPipeline(Array, Object(Closure))
#16 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(95): Laravel\\\\Lumen\\\\Application->dispatch(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#17 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Testing\\\\Concerns\\\\MakesHttpRequests.php(361): Laravel\\\\Lumen\\\\Application->handle(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#18 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\tests\\\\API\\\\V1\\\\Users\\\\UsersTest.php(10): Laravel\\\\Lumen\\\\Testing\\\\TestCase->call('POST', 'api/v1/users', Array)
#19 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1545): API\\\\V1\\\\Users\\\\UsersTest->test_should_create_a_new_user()
#20 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1151): PHPUnit\\\\Framework\\\\TestCase->runTest()
#21 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestResult.php(726): PHPUnit\\\\Framework\\\\TestCase->runBare()
#22 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(903): PHPUnit\\\\Framework\\\\TestResult->run(Object(API\\\\V1\\\\Users\\\\UsersTest))
#23 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestCase->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#24 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#25 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#26 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\TestRunner.php(670): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#27 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(143): PHPUnit\\\\TextUI\\\\TestRunner->run(Object(PHPUnit\\\\Framework\\\\TestSuite), Array, Array, true)
#28 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(96): PHPUnit\\\\TextUI\\\\Command->run(Array, true)
#29 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\phpunit(98): PHPUnit\\\\TextUI\\\\Command::main()
#30 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\bin\\\\phpunit(110): include('C:\\\\\\\\xampp\\\\\\\\htdocs...')
#31 {main}
"} 
[2022-03-06 11:13:01] testing.ERROR: Target [App\\repositories\\contracts\\UserRepositoryInterface] is not instantiable while building [App\\Http\\Controllers\\API\\V1\\UsersController]. {"exception":"[object] (Illuminate\\\\Contracts\\\\Container\\\\BindingResolutionException(code: 0): Target [App\\
epositories\\\\contracts\\\\UserRepositoryInterface] is not instantiable while building [App\\\\Http\\\\Controllers\\\\API\\\\V1\\\\UsersController]. at C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php:1093)
[stacktrace]
#0 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(886): Illuminate\\\\Container\\\\Container->notInstantiable('App\\\\\\
epositorie...')
#1 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\
epositorie...')
#2 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\
epositorie...', Array)
#3 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\
epositorie...', Array)
#4 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(1031): Laravel\\\\Lumen\\\\Application->make('App\\\\\\
epositorie...')
#5 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(951): Illuminate\\\\Container\\\\Container->resolveClass(Object(ReflectionParameter))
#6 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(912): Illuminate\\\\Container\\\\Container->resolveDependencies(Array)
#7 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\\\Http\\\\\\\\Contro...')
#8 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#9 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#10 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(324): Laravel\\\\Lumen\\\\Application->make('App\\\\\\\\Http\\\\\\\\Contro...')
#11 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(282): Laravel\\\\Lumen\\\\Application->callControllerAction(Array)
#12 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(267): Laravel\\\\Lumen\\\\Application->callActionOnArrayBasedRoute(Array)
#13 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(169): Laravel\\\\Lumen\\\\Application->handleFoundRoute(Array)
#14 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(429): Laravel\\\\Lumen\\\\Application->Laravel\\\\Lumen\\\\Concerns\\\\{closure}(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#15 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(175): Laravel\\\\Lumen\\\\Application->sendThroughPipeline(Array, Object(Closure))
#16 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(95): Laravel\\\\Lumen\\\\Application->dispatch(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#17 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Testing\\\\Concerns\\\\MakesHttpRequests.php(361): Laravel\\\\Lumen\\\\Application->handle(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#18 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\tests\\\\API\\\\V1\\\\Users\\\\UsersTest.php(10): Laravel\\\\Lumen\\\\Testing\\\\TestCase->call('POST', 'api/v1/users', Array)
#19 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1545): API\\\\V1\\\\Users\\\\UsersTest->test_should_create_a_new_user()
#20 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1151): PHPUnit\\\\Framework\\\\TestCase->runTest()
#21 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestResult.php(726): PHPUnit\\\\Framework\\\\TestCase->runBare()
#22 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(903): PHPUnit\\\\Framework\\\\TestResult->run(Object(API\\\\V1\\\\Users\\\\UsersTest))
#23 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestCase->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#24 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#25 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#26 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\TestRunner.php(670): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#27 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(143): PHPUnit\\\\TextUI\\\\TestRunner->run(Object(PHPUnit\\\\Framework\\\\TestSuite), Array, Array, true)
#28 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(96): PHPUnit\\\\TextUI\\\\Command->run(Array, true)
#29 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\phpunit(98): PHPUnit\\\\TextUI\\\\Command::main()
#30 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\bin\\\\phpunit(110): include('C:\\\\\\\\xampp\\\\\\\\htdocs...')
#31 {main}
"} 
[2022-03-06 11:14:15] testing.ERROR: Target [App\\repositories\\contracts\\UserRepositoryInterface] is not instantiable while building [App\\Http\\Controllers\\API\\V1\\UsersController]. {"exception":"[object] (Illuminate\\\\Contracts\\\\Container\\\\BindingResolutionException(code: 0): Target [App\\
epositories\\\\contracts\\\\UserRepositoryInterface] is not instantiable while building [App\\\\Http\\\\Controllers\\\\API\\\\V1\\\\UsersController]. at C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php:1093)
[stacktrace]
#0 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(886): Illuminate\\\\Container\\\\Container->notInstantiable('App\\\\\\
epositorie...')
#1 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\
epositorie...')
#2 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\
epositorie...', Array)
#3 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\
epositorie...', Array)
#4 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(1031): Laravel\\\\Lumen\\\\Application->make('App\\\\\\
epositorie...')
#5 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(951): Illuminate\\\\Container\\\\Container->resolveClass(Object(ReflectionParameter))
#6 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(912): Illuminate\\\\Container\\\\Container->resolveDependencies(Array)
#7 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(758): Illuminate\\\\Container\\\\Container->build('App\\\\\\\\Http\\\\\\\\Contro...')
#8 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\illuminate\\\\container\\\\Container.php(694): Illuminate\\\\Container\\\\Container->resolve('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#9 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Application.php(300): Illuminate\\\\Container\\\\Container->make('App\\\\\\\\Http\\\\\\\\Contro...', Array)
#10 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(324): Laravel\\\\Lumen\\\\Application->make('App\\\\\\\\Http\\\\\\\\Contro...')
#11 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(282): Laravel\\\\Lumen\\\\Application->callControllerAction(Array)
#12 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(267): Laravel\\\\Lumen\\\\Application->callActionOnArrayBasedRoute(Array)
#13 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(169): Laravel\\\\Lumen\\\\Application->handleFoundRoute(Array)
#14 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(429): Laravel\\\\Lumen\\\\Application->Laravel\\\\Lumen\\\\Concerns\\\\{closure}(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#15 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(175): Laravel\\\\Lumen\\\\Application->sendThroughPipeline(Array, Object(Closure))
#16 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Concerns\\\\RoutesRequests.php(95): Laravel\\\\Lumen\\\\Application->dispatch(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#17 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\laravel\\\\lumen-framework\\\\src\\\\Testing\\\\Concerns\\\\MakesHttpRequests.php(361): Laravel\\\\Lumen\\\\Application->handle(Object(Laravel\\\\Lumen\\\\Http\\\\Request))
#18 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\tests\\\\API\\\\V1\\\\Users\\\\UsersTest.php(10): Laravel\\\\Lumen\\\\Testing\\\\TestCase->call('POST', 'api/v1/users', Array)
#19 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1545): API\\\\V1\\\\Users\\\\UsersTest->test_should_create_a_new_user()
#20 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(1151): PHPUnit\\\\Framework\\\\TestCase->runTest()
#21 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestResult.php(726): PHPUnit\\\\Framework\\\\TestCase->runBare()
#22 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestCase.php(903): PHPUnit\\\\Framework\\\\TestResult->run(Object(API\\\\V1\\\\Users\\\\UsersTest))
#23 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestCase->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#24 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#25 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\Framework\\\\TestSuite.php(677): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#26 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\TestRunner.php(670): PHPUnit\\\\Framework\\\\TestSuite->run(Object(PHPUnit\\\\Framework\\\\TestResult))
#27 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(143): PHPUnit\\\\TextUI\\\\TestRunner->run(Object(PHPUnit\\\\Framework\\\\TestSuite), Array, Array, true)
#28 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\src\\\\TextUI\\\\Command.php(96): PHPUnit\\\\TextUI\\\\Command->run(Array, true)
#29 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\phpunit\\\\phpunit\\\\phpunit(98): PHPUnit\\\\TextUI\\\\Command::main()
#30 C:\\\\xampp\\\\htdocs\\\\dashboard\\\\Azmoon\\\\vendor\\\\bin\\\\phpunit(110): include('C:\\\\\\\\xampp\\\\\\\\htdocs...')
#31 {main}
"

کنترلر من هم این هست


namespace App\\Http\\Controllers\\API\\V1;
use App\\Http\\Controllers\\Controller;
use App\\repositories\\contracts\\UserRepositoryInterface;
use Illuminate\\Http\\Request;
class UsersController extends Controller
{   
    public function __construct(private UserRepositoryInterface $userRepository)
    {
    }
    public function store(Request $request)
    {
         $this->validate($request, [
             'fullname' => 'required|string|min:3|max:255',
             'email' => 'required|email',
             'mobile'=>'required|srting',
             'password' => 'required',
         ]);
        
         $this->userRepository->create($request->toArray());
        return response()->json(
            [
            'success'=>true,
            'message'=>'کاربر با موفقیت ایجاد شد',
             'date'=>[
                'fullname' => $request->fullname,
                'email' => $request->email,
                'mobile'=>$request->mobile,
                'password' => $request->password,
                ]
            ])->setStatusCode(201);
    }
 
}

و صفحه UserTest من این هست


namespace API\\V1\\Users;
class UsersTest extends \\TestCase
{ 
    public function test_should_create_a_new_user()
    {
        $response = $this->call('POST','api/v1/users',[
            'fullname' => 'rohollah',
            'email' => 'rohollah@gmail.com',
            'mobile'=>'09128670527',
            'password' => '123456',
        
        ]);
        $this->assertEquals(201,$response->status());
        $this->seeJsonStructure([   
            'success',
            'message',
            'date'=>[
                'fullname' ,
                'email',
                'mobile',
                'password',
            ],
        ]);
       
    }
    // public function test_it_must_throw_a_exception_if_we_dont_send_parameters()
    // {
    //     $response=$this->call('POST','api/vi/users',[]);
    //     $this->assertEquals(422,$response->status());
    // }
    
}

صفحه Route


/** @var \\Laravel\\Lumen\\Routing\\Router $router */
$router->group(['prefix'=>'api/v1'], function () use ($router) {
   $router->group(['prefix'=>'users'], function () use ($router) {
      $router->post('','API\\V1\\UsersController@store');
   });
});

صفحه App Provider


namespace App\\Providers;
use Illuminate\\Support\\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
    public function boot()
    {
        $this->app->bind(UserRepositoryInterface::class,jsonUserRepository::class);
    }
    
}

json repository


namespace App\\repositories\\json;
use App\\repositories\\contracts\\RepositoryInterface;
class JsonBaseRepository implements RepositoryInterface
{
    public function create(array $data)
    {
        file_put_contents('user.json',json_encode($data));
        
    }
    public function update(int $id,array $data)
    {
        
        // return $this->model::where('id',$id)->update($data);
        
    }
    public function all(array $where)
    {
    //    $query=$this->model::query();
    //    foreach($where as $key => $value)
    //    {
    //        $query->where($key,$value);
           
    //    }
    //    return $query->get();
    }
    public function delete(array $where)
    {
        // $query=$this->model::query();
        // foreach($where as $key => $value)
        // {
        //     $query->where($key,$value);
        // }
        
        // return $query->delete();
    }
    public function find($id)
    {
        // return $this->model::find($id);
    }
    
}

و json user


namespace App\\repositories\\json;
use App\\repositories\\contracts\\RepositoryInterface;
class JsonBaseRepository implements RepositoryInterface
{
    public function create(array $data)
    {
        file_put_contents('user.json',json_encode($data));
        
    }
    public function update(int $id,array $data)
    {
        
        // return $this->model::where('id',$id)->update($data);
        
    }
    public function all(array $where)
    {
    //    $query=$this->model::query();
    //    foreach($where as $key => $value)
    //    {
    //        $query->where($key,$value);
           
    //    }
    //    return $query->get();
    }
    public function delete(array $where)
    {
        // $query=$this->model::query();
        // foreach($where as $key => $value)
        // {
        //     $query->where($key,$value);
        // }
        
        // return $query->delete();
    }
    public function find($id)
    {
        // return $this->model::find($id);
    }
    
}

contracts ها


namespace App\\repositories\\contracts;
interface RepositoryInterface
{
    public function create(array $data);
    public function update(int $id,array $data);
    public function all(array $where);
    public function delete(array $where);
    public function find($id);
    
    
}

قسمت user


namespace App\\repositories\\contracts;
use App\\repositories\\contracts\\RepositoryInterface;
interface UserRepositoryInterface extends RepositoryInterface
{
    
   
    
}

قسمت env.

APP_NAME=Lumen
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=UTC
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
QUEUE_CONNECTION=sync

تمام قسمت هایی که احتمال میدادم مشکل از اینجاها باشه ارسال کردم اگر قسمت دیگری مدنظرتون هست بفرماید تا ارسال کنم و خواهشا اگر زمان بزارید مشکل منو حل کنید یک دنیا ممنون تون میشم ، خیلی سپاسگذارم.

سلام دوست عزیز

لطفا پروژتون رو پیوست کنید تا براتون بررسی کنیم

محمد گازری ۱۵ اسفند ۱۴۰۰، ۱۲:۳۰

درود مجدد، از اونجایی که حجم فایل 8 مگ هست و اینجا تا 3 مگ بیشتر نمیشه پیوست کرد، داخل گوگل درایو پیوست کردم و لینک رو در اختیار تون قرار میدم.

https://drive.google.com/file/d/1UkSxYlk7d6fRSV7A9pkX2hr384kXEOuB/view?usp=sharing

روح الله طالبیان ۱۵ اسفند ۱۴۰۰، ۱۹:۵۳

پروژتون رو بررسی کردم 3 تا مشکل داشت که به ترتیب توضیح میدم

1 در فایل AppServiceProvider شما اسم کلاس JsonUserRepository رو با j کوچیک نوشتید به شکل زیر صحیح است

$this->app->bind(UserRepositoryInterface::class,JsonUserRepository::class);

2. در فایل AppServiceProvider شما کلاس‌های JsonUserRepository و UserRepositoryInterface رو use نکردید

namespace App\\Providers;
use Illuminate\\Support\\ServiceProvider;
use App\\repositories\\json\\JsonUserRepository; // JsonUserRepository bayad use beshe
use App\\repositories\\contracts\\UserRepositoryInterface; // UserRepositoryInterface bayad use beshe
class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
    public function boot()
    {
        $this->app->bind(UserRepositoryInterface::class,JsonUserRepository::class);
    }
}

3. در فایل UsersController شما غلط املایی داشتید در validation مربوط به فیلد mobile به جای string نوشته بودید srting (جای r با t رو جابجا نوشتید)

$this->validate($request, [
    'fullname' => 'required|string|min:3|max:255',
    'email' => 'required|email',
    'mobile' => 'required|string', // in khat eslah shod
    'password' => 'required',
]);

بعد از اصلاح این 3 مورد تست‌ها pass میشن

0473-problem.png

بهترین پاسخ
محمد گازری ۱۶ اسفند ۱۴۰۰، ۰۵:۴۱