От новичка до гуру: Курсы программирования на CyberDuff

Как я могу написать этот простой тест на синтаксисе AAA с фреймворком Rhino Mocks?

Как я могу написать этот простой тест на основе записи и воспроизведения в синтаксисе AAA с фреймворком Rhino Mocks?

public interface IStudentReporter
{
      void PrintStudentReport(List<IStudent> students);
      List<IStudent> GetUnGraduatedStudents(List<IStudent> students);
      void AddStudentsToEmptyClassRoom(IClassRoom classroom, List<IStudent> 
}




 [Test]
    public void PrintStudentReport_ClassRoomPassed_StudentListOfFive()
     {
        IClassRoom classRoom = GetClassRoom(); // Gets a class with 5 students

        MockRepository fakeRepositoery = new MockRepository();
        IStudentReporter reporter = fakeRepositoery
                                    .StrictMock<IStudentReporter>();

        using(fakeRepositoery.Record())
           {
              reporter.PrintStudentReport(null);

              // We decalre constraint for parameter in 0th index 
              LastCall.Constraints(List.Count(Is.Equal(5))); 
           }

       reporter.PrintStudentReport(classRoom.Students);
       fakeRepositoery.Verify(reporter);
      }

Ответы:


1

В порядке. Я нашел способ:

[Test]
public void PrintStudentReport_ClassRoomPassed_StudentListOfFive_WithAAA()
{
    //Arrange
    IClassRoom classRoom = GetClassRoom(); // Gets a class with 5 students
    IStudentReporter reporter = MockRepository.GenerateMock<IStudentReporter>();

    //Act
    reporter.PrintStudentReport(classRoom.Students);

    //Assert
    reporter
        .AssertWasCalled(r =>  r.PrintStudentReport(
                        Arg<List<IStudent>>
                               .List.Count(Is.Equal(5)))
                         );
}
09.12.2010
  • Я думаю, вам следует использовать здесь GenerateStub. Вам понадобится GenerateMock, только если вы хотите использовать .Expect. См. Руководство пользователя о разнице между GenerateMock и GenerateStub (хотя для честно говоря, страница в целом также немного сбивает с толку ... Я имею в виду ту часть, где говорится: В большинстве случаев вам следует предпочесть использовать заглушки. Только когда вы тестируете сложные взаимодействия, я бы рекомендовал использовать фиктивные объекты .) 09.12.2010
  • Новые материалы

    Представляем Narwhal Technologies (Nrwl)
    6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

    Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
    Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..