Написание тестовых примеров для дооснащения [дубликат]

используете ли вы конфигурацию SMTP для отправки своей электронной почты? попробуйте вместо этого использовать phpmailer. вы можете загрузить библиотеку из https://github.com/PHPMailer/PHPMailer . Я создал электронную почту, отправив этот путь:

function send_mail($email, $recipient_name, $message='')
{
    require("phpmailer/class.phpmailer.php");

    $mail = new PHPMailer();

    $mail->CharSet="utf-8";
    $mail->IsSMTP();                                      // set mailer to use SMTP
    $mail->Host = "mail.example.com";  // specify main and backup server
    $mail->SMTPAuth = true;     // turn on SMTP authentication
    $mail->Username = "myusername";  // SMTP username
    $mail->Password = "p@ssw0rd"; // SMTP password

    $mail->From = "me@walalang.com";
    $mail->FromName = "System-Ad";
    $mail->AddAddress($email, $recipient_name);

    $mail->WordWrap = 50;                                 // set word wrap to 50 characters
    $mail->IsHTML(true);                                  // set email format to HTML (true) or plain text (false)

    $mail->Subject = "This is a Sampleenter code here Email";
    $mail->Body    = $message;
    $mail->AltBody = "This is the body in plain text for non-HTML mail clients";    
    $mail->AddEmbeddedImage('images/logo.png', 'logo', 'logo.png');
    $mail->addAttachment('files/file.xlsx');

    if(!$mail->Send())
    {
       echo "Message could not be sent. 

"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } echo "Message has been sent"; }

7
задан Zhou Hao 20 May 2016 в 03:31
поделиться

2 ответа

Вы можете сделать это следующим образом:

@Test
public void testLoginWithCorrectUserNameAndPassword() throws Exception {
    // create or mock response object
    when(service.login(anyString(), anyString(), anyString).thenReturn(Observable.just(response));
    mLoginPresenter.login("user@email.com","password");
    verify(view).loginSuccess();
}

@Test
public void testLoginWithIncorrectUserNameAndPassword() throws Exception {
    // create or mock response object
    when(service.login(anyString(), anyString(), anyString).thenReturn(Observable.<Response>error(new IOException()));
    mLoginPresenter.login("user@email.com","password");
    verify(view).showError(anyString);
}
5
ответ дан Ilya Tretyakov 23 August 2018 в 02:28
поделиться
  • 1
    Mockito.when(service.login(any(),anyString(),anyString()).thenReturn(Observable.just(response)); Как указать первый параметр? Это подписчик & lt; Response & gt ;. Я не могу отдать его никому (). Что мне делать? благодаря – Zhou Hao 20 May 2016 в 04:43
  • 2
    извините, я не заметил, что вы передаете подписчика. Я думаю, что лучше изменить свой метод обслуживания, чтобы он возвращал Observable и подписывался на него в классе презентатора. В этом случае код будет работать. В противном случае вы должны издеваться над mApi. – Ilya Tretyakov 20 May 2016 в 04:51
  • 3
    Исправить проблему с помощью ArgumentCaptor – Zhou Hao 20 May 2016 в 06:22

Спасибо за @ Илья Третьяков, я выбрал это решение:

private ArgumentCaptor<Subscriber<Response>> subscriberArgumentCaptor;

@Test
public void testLoginWithCorrectUserNameAndPassword() throws Exception {
    mLoginPresenter.login("user@email.com","password");
    // create the mock Response object
    Response response = ......

    verify(service, times(1)).login(
        subscriberArgumentCaptor.capture(),
        stringUserNameCaptor.capture(),
        stringPasswordCaptor.capture()
    );

    subscriberArgumentCaptor.getValue().onNext(response);
    verify(view).loginSuccess();
}
4
ответ дан Zhou Hao 23 August 2018 в 02:28
поделиться
Другие вопросы по тегам:

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