пятница, 22 ноября 2013 г.

Расстановка приоритетов

Тайм менеджмент очень сильно напоминает планирование работ по проекту.  Странно, что методы, почему-то, не перенимаются.

Недавно прочитал про систему расстановки приоритетов под названием Рутина. Это замечательная вещь в плане отсеивания бесполезной фигни из беклога.

пятница, 15 ноября 2013 г.

Unit testing handmade (часть вторая)

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

static const auto encrypt_params = {
    make_tuple(key01, 0xCCCCCCCCU, 0x33333333U, 0xF5FE5211U, 0x17E8D02EU),
    make_tuple(key01, 0x33333333U, 0xCCCCCCCCU, 0x6390ED97U, 0x3A962C89U),
    make_tuple(key02, 0xCCCCCCCCU, 0x33333333U, 0x2A78B7E0U, 0x800A0268U),
    ...
};

UP_PARAMETRIZED_TEST(encryptShouldBeCorrect, encrypt_params) {
    const auto key = get<0>(encrypt_params);
    const auto A = get<1>(encrypt_params);
    const auto B = get<2>(encrypt_params);
    const auto eA = get<3>(encrypt_params);
    const auto eB = get<4>(encrypt_params);

Но порассуждать хотел в основном на тему утверждений.

вторник, 5 ноября 2013 г.

Юнит тестинг по моему

В основном я пользуюсь boost::test. Это в принципе неплохой фреймворк, но не так давно, занимаясь хобби проектиком подумал... Последнее время для себя все больше пишу на новом C++, и часто получается так, что boost тащится только ради тестирования. И более того, если хочется чего-то необычного - докумментация boost::test не дает ответов на эти вопросы. Нужно лезть в исходники и разбираться, например как вызвать все тесты из своего main? Как в один тест запихнуть несколько разных параметров?
Закончилось все тем, что решил написать свой фреймворк, с блекджеком и ш.. параметризованными тестами и сравнением коллекций...