Почему wp_mail () не работает на localhost?

Прежде всего, Object не имеет функции filter, а ваш jasmine.createSpyObj буквально бесполезен. Как говорит @Luan Phan в своем ответе, мы обычно тестируем входное и выходное значение для функции.

Однако, если вы хотели бы знать, например, если Object.keys был вызван внутри вашей функции, вот пример

g3]

it('should func', function () {                        
    spyOn(Object, 'keys').and.callThrough();

    $scope.filterData(data, allowedKeys);                     

    expect(Object.keys).toHaveBeenCalled();
});

То же самое можно сделать для остальных встроенных функций, используемых в filterData

it('should func', function () {
    spyOn(Object, 'keys').and.callThrough();
    spyOn(Array.prototype, 'filter').and.callThrough();
    spyOn(Array.prototype, 'reduce').and.callThrough();

    $scope.filterData(data, allowedKeys);

    expect(Object.keys).toHaveBeenCalled();
    expect(Array.prototype.filter).toHaveBeenCalled();
    expect(Array.prototype.reduce).toHaveBeenCalled();
});

Если вам действительно нужно mock что одна из встроенных функций возвращается, вот пример

it('should func', function () {
    const mockResult = {};

    spyOn(Array.prototype, 'reduce').and.returnValue(mockResult);

    const result = filterData(data, allowedKeys);

    expect(result).toBe(mockResult);
});

Опять же, встроенные функции Javascript уже имеют тесты, написанные в в другом месте , мы не знаем, t нужно проверить его в нашем тесте, мы должны сосредоточиться на функциях, которые мы пишем.

Надеемся, что это поможет

0
задан shadi 18 January 2019 в 21:56
поделиться

1 ответ

Трудно заставить почту работать на локальном хосте по разным причинам, которые включают в себя неправильную настройку SMTP-сервера.

Я бы предложил сначала протестировать с sendmail и проверить, работает ли он - если это не сработает, то я бы предложил перейти к тестированию локального SMTP-сервера с помощью telnet. Возможно, у вас проблемы с сетью, из-за которых необходимые порты недоступны из-за вашего интернет-провайдера. Насколько я знаю, некоторые интернет-провайдеры блокируют эти порты специально, чтобы помочь уменьшить спам.

Одним из возможных решений может быть настройка PHP для использования внешнего SMTP-сервера, такого как Google, через файл конфигурации php (php.ini).

Лучшее решение, на мой взгляд, это получить общий хостинг или VPS и использовать его для разработки.

0
ответ дан umarsa 18 January 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: