>source

C#에 아래와 같은 방법이 있습니다. Moq에서 단위 테스트를 어떻게 작성합니까? 이메일 발신자 주소, 참조, 이메일 본문, 발신자 계정 비밀번호가 올바른지 확인하고 싶었습니다.

무엇을 조롱해야 하는지, 무엇이 대상이어야 하는지 잘 모르겠습니다. 도움을 주셔서 감사합니다.

공개 문자열 SendEmail(문자열 emailNotificationSender, 문자열 senderAccountPassword, 문자열 emailCcList, string emailBody, string emailSubject, List to Receipients) { 노력하다 { ExchangeService exchangeService= 새로운 ExchangeService(ExchangeVersion.Exchange2016); exchangeService.Credentials= 새로운 WebCredentials(emailNotificationSender, senderAccountPassword); exchangeService.AutodiscoverUrl(emailNotificationSender, RedirectionUrlValidationCallback); EmailMessage 이메일= 새로운 EmailMessage(exchangeService); 이메일.ToRecipients.AddRange(toRecipients); 목록 EmailNotificationCcList= new List(); EmailNotificationCcList= emailCcList.Split(';').ToList(); email.CcRecipients.AddRange(EmailNotificationCcList); 이메일.제목= 이메일제목; email.Body= 새로운 MessageBody(emailBody.ToString()); 이메일.보내기();

        //return System.Threading.Tasks.Task.FromResult("Success");
            return "Success";
        }
        catch (Exception exception)
        {
            OnError(new ErrorRecordEventArgs
            {
                ErrorSource= "ExchangeDataStore::ExecuteQuery()",
                //DataSource= dataSource,
                //DataSourceType= dataSourceType,
                Exception= exception
            });
        }
        return default;
    }
    public static bool RedirectionUrlValidationCallback(string redirectionUrl)
    {
        //The default for the validation callback is to reject the URL.
        bool result= false;
        Uri redirectionUri= new Uri(redirectionUrl);
        //Validate the contents of the redirection URL. In this simple validation
        //callback, the redirection URL is considered valid if it is using HTTPS
        //to encrypt the authentication credentials.
        if (redirectionUri.Scheme== "https")
        {
            result= true;
        }
        return result;
    }

SendEmail()을 테스트하려는 경우 이를 조롱하는 것이 아니라 종속성을 조롱하고 싶습니다. 예를 들어 실제로 이메일을 보낼 필요가 없습니다. 이 경우 테스트를 위해 설정한 모의 서비스 종속성을 쉽게 바꿀 수 있도록 code를 재구성해야 합니다.

Jasen2021-11-12 09:24:10

감사합니다. Jasen, SendEmail() 매개변수가 올바른지 모의 테스트를 작성하고 싶습니다. 예를 들어 emailNotificationSender, senderAccountPassword, emailCcList, emailBody, emailSubject, ListtoReceipients. 어떻게 쓰는지 알려주세요

Umapathy2021-11-12 09:24:10

"이메일 발신자 주소, 참조, 이메일 본문, 발신자 계정 암호가 올바른지 확인하고 싶었습니다." code 또는 프레임워크의 EmailMessage를 테스트하고 있습니까? EmailMessage를 테스트하려면 자체 테스트에 넣고 변수를 연결하십시오(무의미해 보이지만).

Jasen2021-11-12 09:24:10
  • 이전 reactjs : React Functional Components를 사용하여 'Snake Eyes' 또는 값을 반환하는 방법
  • 다음 Python DAG에서 Airflow 변수에 액세스하시겠습니까?