Тестовое создание отчетов

Лично я бы не стал тестировать реализацию базы данных. Я бы настроил базу данных, чтобы убедиться, что столбец задан как уникальный, и пусть база данных выполняет свою работу.

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

Например,

public interface IPersonRepository
{
    void AddPerson(Person person);
    IEnumerable<Person> GetPeople();
}

public class PersonService
{
    private static readonly IPersonRepository _repo;

    public PersonService(IPersonRepository repo)
    {
        _repo = repo;
    }

    public void AddPerson(Person person)
    {
        var people = _repo.GetPeople();
        if(people.Select(p=>p.LastName).Contains(person.LastName))
        {
             // person exists
        }
        _repo.AddPerson(person);
    }
}


public class PersonServiceTests
{
     public void ShouldNotAddPersonIfExists()
     {
         var mockRepo = new Mock<IPersonRepository>();
         mockRepo.Set(r => r.GetPeople()).Returns(new[]{new Person(firstName, lastName), new Person(otherName, lastName));

         var service = new PersonService(mockRepo.Object);

         /// try add and check assertions or exceptions thrown
     }
}
7
задан Kevin Fairchild 14 November 2008 в 19:25
поделиться

3 ответа

Вы могли всегда просто использовать SQL Server Reporting Services и Построитель отчетов (веб-разработчик MS) или Конструктор отчетов (компонент Visual Studio). Довольно легко разбудить этот набор также.

Существует несколько решений для создания отчетов конечного пользователя вокруг также, которые помогают динамично создать отчеты, если Вы готовы инвестировать немного наличных денег.

Моя компания производит тот: http://www.rsinteract.com имеет очень дешевый стандартный выпуск с ограниченным количеством отчетов (30-дневная бесплатная демонстрационная версия). Это сообщает непосредственно от SQL-сервера с установленной Reporting Services. Это победило лучший из TechEd 2006 - http://windowsitpro.com/article/articleid/53944/best-of-tech-ed-2006-winners.html

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

Существует также ProClarity, Отчет ApexSQL и Таблица, все из которых хороши.

1
ответ дан 7 December 2019 в 18:46
поделиться

Вы могли попытаться смотреть на прокрутку Вашего собственного (если Вы знаете то, что Вы ищете), использующий Обработку, записанную Ben Fry. Это лучше всего сопровождается его книгой "Визуализация Данных".

Инструмент является бесплатным, и я предполагаю, что можно заставить бесплатный 45-дневный суд над Книгами O'Reilly Онлайн получать преимущество и видеть если его право для Вас. Я действительно знаю, что существуют главы по чтению и уплотнению данных из всех видов источников (включая XML и базы данных) и затем создание значимых и полезных визуализаций от них.

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

1
ответ дан 7 December 2019 в 18:46
поделиться

Какая часть Пентахо?

В проекте Kettle есть средства для преобразования информации о круиз-контроле и загрузки ее в реляционную базу данных. Вероятно, это хороший модуль для правильной работы, особенно если вы почти закончили разбираться в нем. Я надеюсь, вы поделитесь этим материалом. Я тоже мог бы его использовать.

Платформа будет автоматически планировать материал, как только Kettle загрузит его.

Чтобы сделать Мондриан действительно полезным, вам нужно разработать организацию фактов / измерений для ваших тестовых данных. На данном этапе это может стоить вам, а может и не стоить.

После загрузки данных вы, вероятно, сможете извлечь большую пользу из простых запросов SQL, таких как этот ...

 select * 
  from test 
  where failed='yes' 
  order by testno, date desc

и этот ...

 select max(date), min(date), testno 
  from test
  where failed='yes'
  group by testno 
  order by testno 

и тому подобное. Вы можете подумать о создании представлений на своем сервере таблиц для ваших любимых запросов.

0
ответ дан 7 December 2019 в 18:46
поделиться
Другие вопросы по тегам:

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