Само при наличието на UI ли дефинираме acceptance тест ?
Ако ни е възложено да напишем отделен модул, по-какъв начин можем да
дефинираме public API-то,
удачно ли е да се изпозват acceptance test, в такъв случай ?
Pregladai tova ... http://cukes.info/
Ako imash vuprosi pishi .... tova e po skoro pulna concepcia za
izgrajdane spored zadedeni kriterii ...
Pozdravi,
Hristo Kochev
Само при наличието на UI ли дефинираме acceptance тест ?
Ако ни е възложено да напишем отделен модул, по-какъв начин можем да
дефинираме public API-то,
удачно ли е да се изпозват acceptance test, в такъв случай ?
Аз работя с уеб неща и там има доста инфо и технологии как да ги
напишеш, дали ще минеш през GUI, дали няма да минеш
и т.н.
Мен ме интересува, дали някой подхожда към други проблеми, които са
много по-ограничени и са ориентирани към решаване на определени
програмистки проблеми.
Примерно подхванал съм да решавам разни задачи от puzzlenode.com, като
идеята ми е да тренирам TDD подход.
Самите проблеми са доста малки, взимат някакъв текст за вход и връщат
друг текст за изход. И АТ които пиша за тях са нещо
от рода на:
test 'solve simple case' do
fixture = load 'simple_case.input'
expected = load 'simple_case.output'
answer = Solver.new fixture
assert answer, expected
end
test 'solve more complicated case' do
...
end
След това преминавам към стандартния TDD подход и знам, че като ми
минат горните тестове имам някакво работещо решение.
С други думи тествам най-външния слой, който смятам че има значение.
В момента чета 'Growing object oriented software guided by tests' и
това е първата книга в която различните тестове са ясно разделени и
описани.
Гледах това видео[1] на Yehuda Katz, където обяснява как всичките
тестове, които са имали в merb 0.5 не са им вършили никаква работа за
refactoring
и затова са написали нови които директно минават през public API-то им.
Но това са единствените материали, до които имам достъп, които
обяснавят нещата в дълбочина и дават точни примерни. Всичко останало е
какъв е синтаксиса
на еди кой си xUnit, как unit тестовете работели или не работили,
cucumber-ския Gherkin и т.н.
Някой знае ли подобни материали или собствен опит, които да сподели.
Примерно, сега ми се налага да бачкам с някакво конзолно приложение и
се чудя как да го тествам ?
Мога да напиша тестове които го стартират, подават му различни
аргументи и да гледам после резултата, примерно да пренасоча STDOUT и
STDERR и да ги прегледам, дали
са очакваните. Или пък мога да видя какви точно методи се викат, като
се извика bin-a и да тествам тях, но тези тестове не ми казват, че
всъщност реално bin-a работи както се очаква.
Тогава какви тестове трябват за да потвърдят, че и bin-a работи правилно ?
Поздрави,
Евгени
[1] http://rubyconf2008.confreaks.com/writing-code-that-doesnt-suck.html
Някой знае ли подобни материали или собствен опит, които да сподели.
Примерно, сега ми се налага да бачкам с някакво конзолно приложение и
се чудя как да го тествам ?
Мога да напиша тестове които го стартират, подават му различни
аргументи и да гледам после резултата, примерно да пренасоча STDOUT и
STDERR и да ги прегледам, дали
са очакваните. Или пък мога да видя какви точно методи се викат, като
се извика bin-a и да тествам тях, но тези тестове не ми казват, че
всъщност реално bin-a работи както се очаква.
Тогава какви тестове трябват за да потвърдят, че и bin-a работи правилно ?