Как я могу имитировать OracleConnection и OracleCommand?

Для моих тестов мне нужно имитировать клиента данных, в моем случае это Oracle.

Я создал свой уровень доступа к данным, чтобы разрешить его передачу:

public static Int32? GetUserRoleId(string userName, OracleConnection cn, OracleCommand cmd)

Я использую Moq, хотя при необходимости могу переключиться на другой фреймворк, и когда я перехожу к созданию таких объектов Mock:

Mock<OracleConnection> mockOracleConnection = new Mock<OracleConnection>();
Mock<OracleCommand> mockOracleCommand = new Mock<OracleCommand>();

, я получаю эту ошибку:

Failure: System. ArgumentException: тип для имитации должен быть интерфейсом, абстрактным или незапечатанным классом.

Заключение: Это оказалось проще, чем я думал! Просто смоделируйте функцию слоя DAL следующим образом:

mockDao.Setup(a => a.GetUserRoleId(userName, It.IsAny<OracleConnection>(), It.IsAny<OracleCommand>())).Returns(1);
7
задан Lucas B 4 February 2016 в 16:51
поделиться