Что такое синтаксис AAA, эквивалентный использованию Ordered () в Moh Rhino

Я не могу найти правильный синтаксис, используя синтаксис Fluent /AAA в Rhino для проверки порядка операций.

Я знаю, как это сделать с помощью синтаксиса старой школы записи /воспроизведения:

        MockRepository repository = new MockRepository();
        using (repository.Ordered())
        {
            // set some ordered expectations
        }

        using (repository.Playback())
        {
            // test
        }

Может кто-нибудь сказать мне, что будет эквивалентно этому в синтаксисе AAA для Rhino Mocks. Еще лучше, если вы можете указать мне некоторую документацию для этого.

10 голосов | спросил mockobject 21 PMpTue, 21 Apr 2009 19:08:24 +040008Tuesday 2009, 19:08:24

3 ответа


0

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

// Arrange
var mockFoo = MockRepository.GenerateMock< Foo >();

using( mockFoo.GetRepository().Ordered() )
{
   mockFoo.Expect( x => x.SomeMethod() );
   mockFoo.Expect( x => x.SomeOtherMethod() );
}
mockFoo.Replay(); //this is a necessary leftover from the old days...

// Act
classToTest.BarMethod

//Assert
mockFoo.VerifyAllExpectations();

Этот синтаксис очень похож на Expect /Verify, но, насколько я знаю, это единственный способ сделать это прямо сейчас, и он использует некоторые из приятных функций, представленных в 3.5.

ответил martinnjensen 19 PM00000030000005531 2009, 15:38:55
0

Статический помощник GenerateMock вместе с Ordered () не работал для меня, как ожидалось. Вот что помогло мне (кажется, ключом является явное создание собственного экземпляра MockRepository):

    [Test]
    public void Test_ExpectCallsInOrder()
    {
        var mockCreator = new MockRepository();
        _mockChef = mockCreator.DynamicMock<Chef>();
        _mockInventory = mockCreator.DynamicMock<Inventory>();
        mockCreator.ReplayAll();

        _bakery = new Bakery(_mockChef, _mockInventory);

        using (mockCreator.Ordered())
        {
            _mockInventory.Expect(inv => inv.IsEmpty).Return(false);
            _mockChef.Expect(chef => chef.Bake(CakeFlavors.Pineapple, false));
        }


        _bakery.PleaseDonate(OrderForOnePineappleCakeNoIcing);

        _mockChef.VerifyAllExpectations();
        _mockInventory.VerifyAllExpectations();
    }
ответил Gishu 23 Jpm1000000pmSat, 23 Jan 2010 21:02:14 +030010 2010, 21:02:14
0
Решение

tvanfosson у меня тоже не работает. Мне нужно было убедиться, что звонки совершаются в определенном порядке на 2 макета.

Согласно ответу Айенде в группах Google Ordered() не работает в синтаксисе AAA.

ответил the_joric 3 J0000006Europe/Moscow 2011, 04:43:50

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132