如何解决如何在C#中使用xunit测试变量是否具有字节流
我是 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
}
解决方法
检查结果是否包含一个 ContentStream,然后检查流的长度。
类似于:
var result = _smtpEmailSender.BuildEmailI(SmptpUrl,mailDTO);
Assert.NotNull(result.ContentStream);
Assert.Equal(expectedContentStreamLength,result.ContentStream.Length);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。