[英]How to test if variable have streams of byte using xunit in C#
I am newbie to XUnit,I need to write unit test for a method which generate streams of data (byte[] array) and set it to variable.我是 XUnit 的新手,我需要为生成数据流(字节 [] 数组)并将其设置为变量的方法编写单元测试。 I need to verify if that variable have data(bytes)
我需要验证该变量是否有数据(字节)
Below is the method下面是方法
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;
}
}
I have written Unit test, but I'm confused how would I assert whether variable ContentStream have data or not我已经编写了单元测试,但我很困惑如何断言变量 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
}
Check that result contains a ContentStream, then check the length of the stream.检查结果是否包含 ContentStream,然后检查 stream 的长度。
Something like:就像是:
var result = _smtpEmailSender.BuildEmailI(SmptpUrl, mailDTO);
Assert.NotNull(result.ContentStream);
Assert.Equal(expectedContentStreamLength, result.ContentStream.Length);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.