【问题标题】:How to test if variable have streams of byte using xunit in C#如何在 C# 中使用 xunit 测试变量是否具有字节流
【发布时间】:2021-05-24 16:06:53
【问题描述】:

我是 XUnit 的新手,我需要为生成数据流(byte[] 数组)并将其设置为变量的方法编写单元测试。我需要验证该变量是否有数据(字节)

下面是方法

public class SMTPEmailSender : IEmailSender
{
   private IPDFCreater _pdfCreater;
        private ILogger _log;

        public SMTPEmailSender(IPDFCreater pdfCreater, ILogger log)
        {
            _pdfCreater = pdfCreater;
            _log = log;
        }
public Email BuildEmail(string smptpurl, MailDTO mailRequest)
        {
            Email email = null;
            try
            {
                _
                var otp = new PDFData { OTP = mailRequest.OTP, FaxNumber = mailRequest.FaxNumber, FullName = mailRequest.FullName };
                
                
                email = new Email
                {
                    SMTPServerUrl = smptpurl,
                      .
                      .
                    FromAddressDisplayName = mailRequest.FromAddressDisplayName,
                    ContentStream = new MemoryStream(_pdfCreater.GeneratePDF(otp)),// This line calls a method and return byte array (byte[])
                    AttachmentName = mailRequest.FaxFileName

                };
                
            }
            catch (Exception ex)
            {
                
            }

            return email;
        }
}

我已经写了单元测试,但我很困惑如何断言变量 ContentStream 是否有数据

[Theory]
    [MemberData(nameof(GetFaxAsMailDTO))]
    public void BuildEmailInfo_ReturnsEmailObject(MailDTO faxMailDTO)
    {
        string SmptpUrl = "testurl";
        var result = _smtpEmailSender.BuildEmailI(SmptpUrl, mailDTO);
        // here I want to check the result.ContentStream have bytes of data or not
    }

【问题讨论】:

    标签: c# xunit xunit.net


    【解决方案1】:

    检查结果是否包含 ContentStream,然后检查流的长度。

    类似:

    var result = _smtpEmailSender.BuildEmailI(SmptpUrl, mailDTO);
    Assert.NotNull(result.ContentStream);
    Assert.Equal(expectedContentStreamLength, result.ContentStream.Length);
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 2019-05-10
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多