Макет КонфигурацияКоллекция - PullRequest
0 голосов
/ 11 января 2009

Как я могу смоделировать коллекцию конфигурации с помощью носорогов Rhino.

Мне нужно создать коллекцию Expected ConfigurationCollection, которая содержит 1 элемент, чтобы проверить, содержит ли моя конфигурация этот элемент.

Спасибо.

Примечание. Моя коллекция ConfigurationCollection наследуется от IEnumerable.

public interface ICapalConfiguration
{
    ICapalRepositoryConfigurationCollection Repositories { get; }
    ICapalServiceConfigurationCollection Services { get; }
}

public interface ICapalRepositoryConfigurationCollection : IEnumerable
{
    string DefaultConnectionString { get; set; }
    ICapalRepositoryConfiguration GetElement(string name);
}

public interface ICapalRepositoryConfiguration
{
    string Name { get; set; }
    string ConnectionStringName { get; set; }
}


    [TestMethod]
    public void Can_Get_One_Repository()
    {
        var config = MockRepository.GenerateMock<ICapalConfiguration>();
        var expected_repositories = MockRepository.GenerateMock<ICapalRepositoryConfigurationCollection>();
        var expected_repository = MockRepository.GenerateMock<ICapalRepositoryConfiguration>();

        config.Expect(p => p.Repositories).Return(expected_repositories).Repeat.Any();
        config.Expect(p => p.Repositories.GetElement("ArticleRepository")).Return(expected_repository);

        var config_repositories = config.Repositories;
        var config_repository = config.Repositories.GetElement("ArticleRepository");

        config.VerifyAllExpectations();

        Assert.IsNotNull(config);
        Assert.IsNotNull(config_repositories);
    }

1 Ответ

1 голос
/ 11 января 2009

Какая ваша система тестируется? Глядя на ваш тест, я думаю, что это может привести к реализации ICapalConfiguration, поэтому вы не должны издеваться над ним.

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

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