Image
from aを作成するクラスと他のロジックがあり、クラスから返されたインスタンスが単体テストにある偽物と同じであるByte[]
ことをアサートする単体テストを作成しようとしています。Image
Image
次の信頼できる方法が見つかりません。
- 偽の
Image
\\Byte[]
Resource\ somethingから始めます。 Byte[]
偽物を表すaをクラスに渡します。Image
クラスから返された が私の偽物と同じであると断言します。
これまでに思いついたコードは次のとおりです。
Bitmap fakeBitmap = new Bitmap(1, 1);
Byte[] expectedBytes;
using (var ms = new MemoryStream())
{
fakeBitmap.Save(ms, ImageFormat.Png);
expectedBytes = ms.ToArray();
}
//This is where the call to class goes
Image actualImage;
using (var ms = new MemoryStream(expectedBytes))
actualImage = Image.FromStream(ms);
Byte[] actualBytes;
using (var ms = new MemoryStream())
{
actualImage.Save(ms, ImageFormat.Png);
actualBytes = ms.ToArray();
}
var areEqual =
Enumerable.SequenceEqual(expectedBytes, actualBytes);
Console.WriteLine(areEqual);
var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
using(StreamWriter sw = new StreamWriter(Path.Combine(desktop, "expectedBytes.txt")))
sw.Write(String.Join(Environment.NewLine, expectedBytes));
using(StreamWriter sw = new StreamWriter(Path.Combine(desktop, "actualBytes.txt")))
sw.Write(String.Join(Environment.NewLine, actualBytes));
これは常に を返しますfalse
。