Я тестирование публичный API, однако, внутренне мой API вызывает функцию с подписью какC# Mock защищен внутренней виртуальной функции с входом как объект
protected internal virtual void AddBook(Book book)
{
if (null !=book)
bookList= book;
}
И Booklist также определяется как
public virtual BookInformation bookList{ get; protected internal set; }
Мне нужно установить этот список книг. Я могу сделать это либо с помощью функции AddBook, либо напрямую с помощью bookList. bookList также определяется как «protected internal set
».
Я попытался
var mockModule = new Mock<myModule> { CallBase = true };
mockModule.Protected()
.Setup<Book>("AddBook", book);
Но я получаю сообщение об ошибке, что "AddBook" не существует.
Любые идеи, что мне не хватает?
Обновление Я был прижат к крайнему сроку, поэтому я закончил издеваться над классом. На данный момент это решило мою проблему.
не связан с вопросом, но тот факт, что отдельная 'book' может быть назначена' bookList' (которая будет считаться * списком книг) немного запутанна. Он также игнорирует имя метода - это не * добавление * книги, а * установка * списка книг. – Rob
Рассмотрите, пожалуйста, здесь http://stackoverflow.com/questions/17569746/mocking-internal-classes-with-moq-for-unit-testing – Artem