Assert.IsType <> не работает должным образом с платформой Moq - PullRequest
1 голос
/ 09 марта 2019

Я получаю следующую ошибку при попытке проверить тип фиктивного объекта:

 Assert.IsType() Failure
 Expected: ProjetoAxion.Domain.Entities.User
 Actual:   Castle.Proxies.UserProxy

Пример:

var userMock = Mock<User>().Object;
Assert.IsType<User>(userMock);

Как я могу утверждать, что тип с Moq является типом mocked?

1 Ответ

1 голос
/ 09 марта 2019

Именно так внутренне работает moq. Он использует DynamicProxy под капотом для создания перехватывающего прокси, где прокси Castle.Proxies.UserProxy расширяется User. Иначе, как moq сможет перехватывать вызовы ... Зная этот факт, вы можете использовать IsAssignableFrom<User> вместо IsType<User>.

Assert.IsAssignableFrom<User>(userMock);
...