J'utilise Moq pour mocker ma couche Repository afin que je puisse tester l'unité.Mocking un changement d'attribut sur un paramètre - en utilisant Moq
Ma couche de référentiel Les méthodes d'insertion mettent à jour la propriété Id de mes entités lorsqu'une insertion db réussie se produit.
Comment configurer moq pour mettre à jour la propriété Id de l'entité lorsque la méthode Insert est appelée?
Code Repository: -
void IAccountRepository.InsertAccount(AccountEntity account);
Unité de test: -
[TestInitialize()]
public void MyTestInitialize()
{
accountRepository = new Mock<IAccountRepository>();
contactRepository = new Mock<IContactRepository>();
contractRepository = new Mock<IContractRepository>();
planRepository = new Mock<IPlanRepository>();
generator = new Mock<NumberGenerator>();
service = new ContractService(contractRepository.Object, accountRepository.Object,
planRepository.Object, contactRepository.Object, generator.Object);
}
[TestMethod]
public void SubmitNewContractTest()
{
// Setup Mock Objects
planRepository
.Expect(p => p.GetPlan(1))
.Returns(new PlanEntity() { Id = 1 });
generator
.Expect(p => p.GenerateAccountNumber())
.Returns("AC0001");
// Not sure what to do here?
// How to mock updating the Id field for Inserts?
//
// Creates a correctly populated NewContractRequest instance
NewContractRequest request = CreateNewContractRequestFullyPopulated();
NewContractResponse response = service.SubmitNewContract(request);
Assert.IsTrue(response.IsSuccessful);
}
extrait de mise en œuvre de la classe marché de fournitures (contrat de service WCF).
AccountEntity account = new AccountEntity()
{
AccountName = request.Contact.Name,
AccountNumber = accountNumber,
BillingMethod = BillingMethod.CreditCard,
IsInvoiceRoot = true,
BillingAddressType = BillingAddressType.Postal,
ContactId = request.Contact.Id.Value
};
accountRepository.InsertAccount(account);
if (account.Id == null)
{
// ERROR
}
Je m'excuse si cette information peut faire un peu défaut. J'ai seulement commencé à apprendre des frameworks moq et moqueurs aujourd'hui. ac
merci c'était utile pour moi – BigOmar