【问题标题】:How to mock this class?如何模拟这个类?
【发布时间】:2017-10-02 15:14:41
【问题描述】:

我是一名学生,在如何模拟这门课或其中的任何部分方面确实需要帮助。我尝试了一般的方法,但它不起作用。我认为我缺乏知识,我需要任何知道如何以任何方式模拟这些的人的帮助来帮助我。
我不知道该怎么做

package IT_chatbot;

import java.util.Properties;
import java.util.Scanner;

import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class request_remark {
private static Scanner scan = new Scanner(System.in);
public static String remark(String studentID){

    String courseCode="";

    System.out.println("Please enter course Code to be remarked:");
    courseCode = scan.nextLine();
    System.out.println("The message is sending...");


    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");     
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
   Session session = Session.getInstance(props,new javax.mail.Authenticator()
   {
      protected PasswordAuthentication getPasswordAuthentication() 
      {
         return new PasswordAuthentication("kmitl@gmail.com","2016mmm");
      }
  });

  try
  {   
   MimeMessage message = new MimeMessage(session);
      message.setFrom(new InternetAddress("kmitl@gmail.com"));
      message.addRecipient(Message.RecipientType.TO,new InternetAddress("wn1apc@gmail.com"));
      message.setSubject("Request a remark for a recent past of"+studentID);
      StringBuffer emailMessage = new StringBuffer("Dear Hades");
       emailMessage.append("\r\n");
       emailMessage.append("We've recieved the remark request from student number " + studentID+ " subject " + courseCode);
       emailMessage.append("\r\n");
       emailMessage.append("\r\n");
       emailMessage.append("\r\n");
       emailMessage.append("Best regard,");
       emailMessage.append("\r\n");
       emailMessage.append("\r\n");
      message.setText(emailMessage.toString());
      Transport.send(message);


   }
   catch(Exception e)
   {
     e.printStackTrace();
   }
return courseCode;
}
}

【问题讨论】:

    标签: java testing mocking mockito powermockito


    【解决方案1】:

    首先,你的类名应该类似于 RequestRemark(遵循约定)。

    如果你想模拟你的班级,你只需要去你的测试班并做一些类似的事情:

    private RequestRemark mockRequestRemark = mock(RequestRemark.class);

    但如果你想要测试你的方法,你必须创建你的类的一个对象:

    private RequestRemark requestRemark = new (RequestRemark);

    然后对你的类的每个方法进行测试。

    例如:

    @Test
    public void whenRemark_givenStudentID_thenWhatYouWantToAssert(){
      String id = "";
      requestMark.remark(id);
    
      assertThat(yourAssertion);
    }
    

    pd:我认为您在代码中留下了您的电子邮件密码......

    【讨论】:

    • 别担心它不是真正的邮件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多