jeudi 13 août 2020

Mocking a mock object passed through to parameter to mock

var settings = new Mock<DatabaseSettingsRepository>();


CerberusClientMock = new Mock<CerberusClient>(settings.Object) { CallBase = true }.As<IUserInformationClient>();


CerberusClientMock.Setup(cc => cc.GetUserById(It.IsAny<int>()))
                .Returns(new User
                {
                    Username = "testuser"
                });

            
EmailClientMock = new Mock<AmazonSimpleEmailClient>(settings.Object, withdrawalDataStore.Object, fantasyDataStore.Object, CerberusClientMock.Object){CallBase = true}.As<INotificationClient>();

I am then registering both the CerberusClientMock and EmailClientMock as singletons in my container.

However, when the CereberusClient method is called within the AmazonSimpleEmailClient it does not actually get mocked out? Anyone know a better way to do this?

Aucun commentaire:

Enregistrer un commentaire