OneCode ЧАТ
Open in Telegram
Общаемся на тему веб-разработки. HTML, CSS, JS, VueJS, NuxtJS, PHP, Laravel, MySQL, PostgreSQL. Разрешено: - Задавать вопросы. - Отвечать на вопросы. - Делиться своим опытом. Запрещено: - Нецензурные выражения. - Спам, реклама, фл
Show moreThe country is not specifiedThe category is not specified
485
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
485
я на абонентке у них, и переплата за глаза 😂
но из своих я понятное дело не буду им оплачивать)
485
Ещё интересный момент. Более 80% населения Земли не знает, что такое простое число. Парадокс. Причем без него не могло быть осуществлено даже простое шифрование, блокчейн и т.д.
485
Одна форма для аккаунта, где он выбирает свой город.
Вторая, третья, и т.д. формы тоже имеют поле с выбором города.
Пользователь, при заполнении других форм получает уже заполненное поле со своим городом. Но если, он захочет для определённой деятельности сменить город, то его меняет, и это сохраняется в другой таблице.
Мне всего лишь надо, чтоб в форме при перезагрузке, оставался последний выбранный город, а не из таблица аккаунта.
485
Да ладно,большой экран и малый, с каким комфортней? И да, пока молодой, глаза хорошие можно и на смартфоне кодить,)
485
Привет! Для замокания метода в сервисе во время тестирования вам понадобится использовать фреймворк для тестирования Laravel, который предоставляет возможность создания моков (mocks) объектов и методов. Вам пригодится также знание об использовании
PHPUnit для тестирования в Laravel.
Предположим, у вас есть сервис MailService, который обрабатывает отправку сообщений и обновление модели. Вам нужно замокать метод отправки сообщения, чтобы он не выполнялся во время тестов. Ниже приведен пример, как это можно сделать:
Создайте тестовый класс, который будет тестировать ваш сервис. Например, MailServiceTest.
Внутри этого класса вы можете замокать метод send класса MailService, чтобы он просто возвращал true, предполагая, что отправка прошла успешно.
После этого вызовите вашу джобу, которая должна запустить сервис и обновить модель.
Проверьте, что модель была обновлена, проверяя ожидаемое состояние.
Пример кода для вашего теста может выглядеть следующим образом:
use Tests\TestCase;
use App\Jobs\YourJob; // Замените на название вашей джобы
use App\Services\MailService; // Замените на название вашего сервиса
use App\Models\YourModel; // Замените на название вашей модели
use Illuminate\Foundation\Testing\WithoutMiddleware;
class MailServiceTest extends TestCase
{
use WithoutMiddleware;
public function testMailService()
{
// Создайте мок для класса MailService
$mailServiceMock = $this->getMockBuilder(MailService::class)
->disableOriginalConstructor()
->onlyMethods(['send']) // Укажите, какие методы нужно замокать
->getMock();
// Установите ожидание, что метод send будет вызван и вернет true
$mailServiceMock->expects($this->once())
->method('send')
->willReturn(true);
// Используйте фабрику, чтобы создать тестовую модель с нужными данными
$model = factory(YourModel::class)->create([
'field_for_delayed_send' => 'your_desired_value',
]);
// Создайте инстанс джобы и передайте в нее тестовую модель
$job = new YourJob($model);
// Запустите джобу (обработку отложенной отправки)
$this->dispatch($job);
// Проверьте, что модель была обновлена после успешной отправки
$this->assertTrue($model->fresh()->field_updated_after_mail_send); // Замените на ваше поле, которое должно обновиться
}
}
Обратите внимание, что вам нужно заменить YourJob, MailService, YourModel, field_for_delayed_send и field_updated_after_mail_send на соответствующие названия вашей джобы, сервиса, модели и полей, которые вы используете в своем проекте.
Запустите этот тест, чтобы убедиться, что ваш сервис выполняет все необходимые действия при успешной отправке письма и обновляет модель.
Если что - все претензии к GPT🤷♂️😁