Rhino высмеивает ожидания - PullRequest
       15

Rhino высмеивает ожидания

2 голосов
/ 18 декабря 2009

Мой тестируемый объект имеет два объекта зависимости одного типа. Иногда, когда тест имеет ошибочное ожидание, неясно, какой объект зависимости установил это ожидание. Есть ли какой-нибудь способ дать имена объектам зависимостей, которые будут появляться в сообщениях об ошибках, чтобы я мог их отличить?

Вот пример:

        MockRepository mocks = new MockRepository();
        var xAxis = mocks.StrictMock<IAxis>();
        var yAxis = mocks.StrictMock<IAxis>();
        Ball ball;

        using (mocks.Record())
        {
            Expect.Call(xAxis.Velocity).Return(100);
            Expect.Call(yAxis.Velocity).Return(0);
        }
        using (mocks.Playback())
        {
            ball = new Ball(xAxis, yAxis);
            ball.Bounce();
        }

Теперь, если что-то не так с кодом возврата, я могу получить сообщение, подобное этому:

Rhino.Mocks.Exceptions.ExpectationViolationException: IAxis.get_Velocity (); Ожидаемый # 1, фактический # 0.

Я не могу легко определить, какая ось пропущена.

1 Ответ

2 голосов
/ 18 декабря 2009

Я нашел решение, но это не совсем то, на что я надеялся. Вы можете добавить сообщение к каждому ожиданию. Мой пример становится:

        Expect.Call(xAxis.Velocity).Return(100).Message("x axis");
        Expect.Call(yAxis.Velocity).Return(0).Message("y axis");

И исключение теперь более наглядно:

Rhino.Mocks.Exceptions.ExpectationViolationException: Сообщение: ось x IAxis.get_Velocity (); Ожидаемый # 1, фактический # 0.

Единственный минус в том, что мне нужно добавить сообщение для каждого ожидания. Я надеялся просто назвать фиктивный объект, чтобы это имя появлялось во всех сообщениях.

...