Я написал код для синтаксического анализатора для языка программирования черепах LOGO и мне нужно его протестировать.
Я бы хотел использовать минимальную единицу измерения (http://www.jera.com/techinfo/jtns/jtn002.html#Example), так как это кажется наиболее простым способом тестирования. Ниже приведен небольшой раздел кода моего анализатора. Пожалуйста, не могли бы вы привести пример, используя мой собственныйкод о том, как реализовать минимальное модульное тестирование?
Заранее спасибо:)
int main(int argc, char **argv)
{
int x;
FILE *input_file;
Prog input; /* struct to hold file*/
if (check_inputs(argc) != true) {
return EXIT_FAILURE;
}
input.current_line = 0;
for(x=0; x<MAX_LINES; x++) {
input.words[x][0] = '\0';
}
input_file = fopen(argv[1], "r");
if (input_file == NULL) {
fclose(input_file);
fprintf(stderr, "Failed to open %s\n", argv[1]);
return EXIT_FAILURE;
}
x = 0;
while(fscanf(input_file, "%s", input.words[x++]) == 1
&& x < MAX_LINES) {
assert(x < MAX_LINES);
}
start_parse(&input);
printf("All instructions parsed okay if no other error messages printed!\n");
fclose(input_file);
free(input_file);
return EXIT_SUCCESS;
}
/*check command line inputs and return file name as a string*/
int check_inputs (int argc)
{
if (argc != ARG_NUM) {
fprintf(stderr,"Incorrect number of argumemts.\n");
return false;
}
return true;
}
/*structs */
struct prog {
char words[MAX_LINES][MT_SIZE];
int vars[NUM_VARS];
int current_line;
int current_var;
};
typedef struct prog Prog;