OneCode ЧАТ
前往频道在 Telegram
Общаемся на тему веб-разработки. HTML, CSS, JS, VueJS, NuxtJS, PHP, Laravel, MySQL, PostgreSQL. Разрешено: - Задавать вопросы. - Отвечать на вопросы. - Делиться своим опытом. Запрещено: - Нецензурные выражения. - Спам, реклама, фл
显示更多未指定国家未指定类别
485
订阅者
无数据24 小时
无数据7 天
无数据30 天
帖子存档
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🤷♂️😁