Как я могу сделать поблочное тестирование в Perl?

Нет необходимости агрегировать строки и искать в массивах. Используйте distinct on, пример:

with mytable (key_col, text_col) as (
values 
    (1, 'asd'), 
    (1, 'a'),   
    (2, 'asd'), 
    (2, 'asdfg')    
)

select distinct on (key_col) key_col, text_col as shortest
from mytable
order by key_col, length(text_col)

 key_col | shortest 
---------+----------
       1 | a
       2 | asd
(2 rows)    

Если вам действительно нужна функция (для использования в других обстоятельствах), это может быть простой запрос, заключенный в функцию SQL:

create or replace function shortest(text[])
returns text language sql as $
    select elem
    from unnest($1) as elem
    order by length(elem)
    limit 1;
$;
62
задан szabgab 3 April 2014 в 06:50
поделиться

5 ответов

Я добавил бы свой голос взятию Test::More прежде, чем идти дальше в тестировании Perl. сообщество тестирования Perl довольно хорошо объединено вокруг эти Тест Что-либо Протокол , и Вы захотите играть вокруг с Test::More , чтобы понять, как оно работает и как инструменты как [1 110] prove и Test::Harness::Archive могут помочь автоматизировать и распределить тестирование.

, Если Вы хотите просто "переход прямо в", я думаю Test::Class , предоставляет xTest услуги с бэкенд TAP . Я не использовал его вообще (я Test::More человек сам), но это , очень высоко оценил .

49
ответ дан szabgab 24 November 2019 в 16:50
поделиться

Тест:: Больше должно предложить Вам больше удара для Ваших маркеров, после того как Вы приобретаете навык Теста:: Простой.

Также можно обратиться к этому предыдущему обсуждению искренне Вашим, если Вы хотите больше информации: how-can-i-implement-tdd-in-perl

18
ответ дан Community 24 November 2019 в 16:50
поделиться

Судя по Вашим комментариям melaos ответ, я сказал бы Тест:: Класс или Тест:: Единица - то, что Вы ищете.

12
ответ дан szabgab 24 November 2019 в 16:50
поделиться

Простой тестовый пример:

#!/usr/bin/perl -w

use strict;
use warnings 'all';
use Test::More plan => 4;  # or use Test::More 'no_plan';

use_ok('My::Module', 'Loaded My::Module');
ok( my $obj = My::Module->new(), 'Can create instance of My::Module');

ok( $obj->value('hello'), 'Set value to hello' );
is( $obj->value => 'hello', 'value is still hello');
11
ответ дан JDrago 24 November 2019 в 16:50
поделиться
3
ответ дан Community 24 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

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