Носорог может Дразнить более глубоких/вложенных участников непосредственно?

Действительно ли возможно дразнить вызов элемента объекта тупика/насмешки, не имея необходимость определять это как тупик и также устанавливать возвращаемое значение как все отдельные подробные строки?

Пример:

    [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);
    }

Действительно ли все те временные переменные необходимы только, чтобы погасить вложенные вызовы метода?

6
задан Maslow 2 February 2010 в 21:35
поделиться

1 ответ

Я никогда не использовал функциональность, поэтому я не на 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);

(Примечание: код не протестирован или даже скомпилирован)

3
ответ дан 17 December 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: