interne virtuelle Funktion mit Eingang als Schutzobjekt Ich bin jedoch eine öffentliche API testen, intern meine API eine Funktion mit Unterschrift wieC# Mock
protected internal virtual void AddBook(Book book)
{
if (null !=book)
bookList= book;
}
Und booklist wird auch als
public virtual BookInformation bookList{ get; protected internal set; }
definiert ruft
Ich muss diese Buchliste einstellen. Ich kann es entweder mit der Funktion AddBook oder direkt auf die Buchliste zugreifen. bookList wird auch als "protected internal set
" definiert.
Ich versuchte
var mockModule = new Mock<myModule> { CallBase = true };
mockModule.Protected()
.Setup<Book>("AddBook", book);
Aber ich Fehler erhalten, dass "AddBook" existiert nicht.
Irgendwelche Ideen was vermisse ich?
Update Ich wurde gegen Deadline gedrückt, so dass ich am Ende verspottete die Klasse. Das hat mein Problem vorerst gelöst.
nicht auf die Frage bezogen, aber die Tatsache, dass ein Single 'book' kann' bookList' zugeordnet werden (was man für eine * Liste * von Büchern hält) ist etwas verwirrend. Es trotzt auch dem Namen der Methode - es ist kein * Hinzufügen * eines Buches, sondern * Einstellen * der Liste der Bücher. – Rob
Hier zu überprüfen http://stackoverflow.com/questions/17569746/mocking-internal-classes-with-moq-for-unit-testing – Artem