Ich struggeling mit Schreibeinheit Tests für meine Klasse AttachmentProcessor. Mein Ziel ist es, alle Methoden zu testen und zum Beispiel IList FileList nachzuahmen.Mocking System.Collections.Generic.IList mit Moq
public class AttachmentsProcessor
{
public IList<IFileInfo> FileList { get; set; }
public AttachmentsProcessor(IList<IFileInfo> FileList)
{
...
}
public void RemoveAttachment(int index)
{
...
}
public long GetTotalFilesSize()
{
...
}
public void GetFilesFromDialog(IOpenFileDialog2 openFileDialog1)
{
...
}
}
Schnittstelle:
public interface IFileProcessor
{
IList<IFileInfo> FileList { get; set; }
void RemoveAttachment(int index);
long GetTotalFilesSize();
void GetFilesFromDialog(IOpenFileDialog2 openFileDialog1);
}
Warum testen Sie das Gerät zuerst? Sie wickeln nur eine Liste für Convience-Methoden, Sie brauchen nicht einmal diese Methode an erster Stelle, Zweitens AttachmentsInfo kann eine IFileInfo sein, aber nicht umgekehrt. Wenn Sie also so handeln wollen, muss Ihr erster Aufruf sein AttachmentsProcessor aber wenn Sie das tun, sollten Sie eine Struktur verwenden, die besser geeignet ist, Kovarianz und Contravarianz zu behandeln –
Schnelle Frage - was ist der Vorteil der Verwendung von 'AttachmentProcessor' gegenüber der Verwendung von' List '? –
@SergeyBerezovskiy Ich habe Methoden wie GetSizeOfAllAttachments, GetFilesFromDialog oder GetFilesFromDragandDrop Event usw. – Ngine