#java #юнит_тесты #тестирование #junit
Имеется тестовое задание: Дан файл вида operand1;operand2;operation;result operand1;operand2;operation;result operand1;operand2;operation;result operand1;operand2;operation;result Каждая строка описывает арифметическое действие. operand1 и operand2 - операнды, целые числа operation - арифметическое действие + - / * result - результат операции operation над operand1 и operand2 В файле могут содержаться любые значения полей Требуется Реализовать юнит (JUnit) тесты арифметических действий. Каждое действие должно выглядеть в отчете как отдельный тестовый сценарий Конец задания Я понимаю, как написать тесты JUnit, но не понимаю, что именно тестируется в данном случае. Правильно ли я считаю, что нужно сначала написать код, который парсит переменные, 4 функции для разных арифметических действий, а потом проверять с помощью JUnit корректность работы функций на основании тестовых равенств в файле ? Прошу вас высказать свое понимание задачи.
Ответы
Ответ 1
Я бы написал скрипт (хотя, если там несколько строк, то можно и ручками), который на основании исходного файла нагенерирует Java файл с тестами. То есть, на каждую строку исходного файла будет генерировать что то вида @Test public void test1() { int actual = operand1 operationoperand2; int expect = result; assertEquals(expect , actual); } ну м конечно несколько строк "обвязки" для всего этого, что бы модуль был "компилируемый". В более навороченном виде я бы добалял проверку на 0 для operand2 если operation равно /. UPD Вот на коленке на perl сделать за минут 5, для собеседования считаю самое оно #!/usr/bin/perl use strict; use warnings; print ' import junit.framework.*; public class JavaTest extends TestCase { protected void setUp(){ } '; my $i = 1; while (my $line = <>) { chomp $line; my ($op1, $op2, $oper, $result) = split /;/, $line; print <<"ONE_TEST"; \@Test public void test$i() { int actual = $op1 $oper $op2; int expect = $result; assertEquals(expect, actual); } ONE_TEST $i += 1; } print "}\n";Ответ 2
Я бы сделал 4 теста по 1 на каждую операцию (+ - / *) Каждый тест бы выбирал из файла строки со своими операциями и проверял правильность результата. Но конечно задача очень странная.
Комментариев нет:
Отправить комментарий