Я пытаюсь выполнить модульное тестирование некоторого кода, который добавляет строку в растровое изображение.Код работает нормально, когда приложение работает.Но у меня проблемы с написанием модульного теста для него.
Это SUT:
public byte[] AddStringToImage(byte[] image, string caption)
{
using(var mstream = new MemoryStream(image))
using (var bmp = new Bitmap(mstream))
{
using (var g = Graphics.FromImage(bmp))
{
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.DrawString(caption, new Font("Tahoma", 30), Brushes.Red, 0, 0);
}
var ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
}
Я надеялся, что это может быть так же просто, как передать ему байтовый массив и строку.Примерно так:
var imageContents = new byte[1000];
new Random().NextBytes(imageContents);
const string Caption = "Sold";
AddStringToImage(imageContents, Caption);
но выдает Параметр недопустим исключение в строке:
using (var bmp = new Bitmap(mstream))
Я предполагаю, что массив байтов должен бытьопределенный формат, который имеет смысл.
Как мне создать подходящий байтовый массив в модульном тесте, чтобы я мог передать его методу addStringToImage.