Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
356 views
in Technique[技术] by (71.8m points)

phpunit - Call to undefined method IlluminateContainerContainer::getLocale() | Laravel 8

Unit tests are more difficult for me than functional tests, and I am trying to write a unit test that relates to my middleware, but what goes wrong. Can someone help me fix this error, or write a normal unit test for this middleware.

My middleware

<?php

namespace AppHttpMiddleware;

use AppServicesSettingsService;
use Closure;
use IlluminateHttpRequest;
use IlluminateSupportFacadesApp;

final class Locale
{
    private SettingsService $settingsService;

    public function __construct(SettingsService $settingsService)
    {
        $this->settingsService = $settingsService;
    }

    public function handle(Request $request, Closure $next): mixed
    {
        $locale = $this->settingsService->get('language', app()->getLocale());
        app()->setLocale($locale);

        return $next($request);
    }
}

my test

<?php

namespace TestsUnit;

use AppHttpMiddlewareLocale;
use AppServicesSettingsService;
use IlluminateHttpRequest;
use PHPUnitFrameworkTestCase;

class LocaleMiddlewareTest extends TestCase
{
    /**
     * A basic unit test example.
     *
     * @return void
     */
    public function test_example()
    {
        $request = new Request;

        $settingsService = $this->getMockBuilder(SettingsService::class)->disableOriginalConstructor()->getMock();
        $middleware = new Locale($settingsService);

        $middleware->handle($request, function ($req) {
            $this->assertEquals('en', app()->getLocale());
        });
    }
}
question from:https://stackoverflow.com/questions/65925661/call-to-undefined-method-illuminate-container-containergetlocale-laravel-8

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...