Действительно ли возможно дразнить вызов элемента объекта тупика/насмешки, не имея необходимость определять это как тупик и также устанавливать возвращаемое значение как все отдельные подробные строки?
Пример:
[TestMethod]
public void AssignedPermissions_AssociateExists_ReturnsEdit_Rhino()
{
//Arrange
var fakeConfiguration = MockRepository.GenerateStub<IDomainControllerConfiguration>();
var fakeAssociateRepository = MockRepository.GenerateStub<IAssociateRepository>();
fakeConfiguration.Stub(x => x.AssociateRepository).Return(fakeAssociateRepository);
fakeAssociateRepository.Stub(x=>x.GetAssociatesByRole(null,false,null)).IgnoreArguments()
.Return(new IAssociate[]{MockRepository.GenerateStub<IAssociate>()});
var domain = new DomainController(fakeConfiguration);
const AssignedPermission expected = AssignedPermission.Edit;
//Act
AssignedPermission actual = domain.AssignedPermissions();
//Assert
Assert.AreEqual(expected, actual);
}
Действительно ли все те временные переменные необходимы только, чтобы погасить вложенные вызовы метода?
Я никогда не использовал функциональность, поэтому я не на 100% уверен, что это Будет работать, но теоретически носороги поддерживает рекурсивный издевательства », который должен позволить вам по крайней мере вырезать факессоциантнопозиторию, делая что-то подобное:
var fakeConfiguration = MockRepository.GenerateStub<IDomainControllerConfiguration>();
fakeConfiguration.Stub(x => x.AssociateRepository.GetAssociatesByRole(null,false,null))
.IgnoreArguments()
.Return(new IAssociate[]{MockRepository.GenerateStub<IAssociate>()});
var domain = new DomainController(fakeConfiguration);
(Примечание: код не протестирован или даже скомпилирован)