Начал изучать паскаль модульной структуры и услышал такой термин как заглушки .Как я понял небольшая программа для тестирования процедур при .
Хотелось бы посмотреть какой-нибудь пример.
Драйверы и заглушки это программы, которые используют для проверки тестовых наборовданных (вобщемдл ятестирвоания).
Драйвер это программа, тестирующая какой-то модуль, (технология восходящего тестирования), то есть программа вызывает например какую-то процедуру из тестируемого модуля ипроверяет входные данные и наболр выходных.
А заглушка это программа которая служит для утановки вместо какого-то модуля (тестирование нисходящее).
Пример
uses A;
var c:byte;
begin
readln©
writeln(F©);
end.
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
f:=x*2;
end;
end.
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
writeln('подключенна заглугшка');
f:=10;
end;
end.
uses A;
begin
writeln(F(5));
end.
МЭИ
Апо какой вы книге занимаетесь?
Просто про это очень хорошо рассказанно в книге
Майерс Г. "Искуство тестирования программ" ...
Задачник(Зубов,Котарова) и пяток методичек. и все
По ходу дела возник вопрос: у тебя в примере function а если будет procedure
от этого что-нибудь изменится?
uses A;сделать это с процедурой F уже будет проблематично... ;)
begin
writeln(F(5));
end.
А если б в модуле В было бы условие вроде этого
Да в модуле (в функции) - хоть десяток условий. Заглушка останется такой же. Условия будешь проверять, когда будешь отлаживать саму функцию, а здесь идет отладка главной программы ...
значит я сначала делаю одну заглушку для основной программы а потом еще n-ое число для всех процедур?
Когда ты переходишь к тестированию функции - делаешь заглушки для всего, что она использует, и на ИЗВЕСТНЫХ наборах данных (ведь заглушка возвращает то, что ты ей сказал вернуть) тестируешь работу этой функции...
Что значит "матрица"? Результат функции? Так Turbo Pascal не позволяет возвращать результаты такого типа.
Ну например в предыдущей задаче у меня была процедура(поменять местами столбец первый с indx)в результате эта процедура передавала матрицу измененную.В модульной структуре я загоняю ее в модуле В(например). В этом случае как быть?
Procedure change_rows(Var After, Before: matrix);
begin
writeln('Заглушка');
After := Before; { просто вернуть исходную матрицу }
end;
Procedure change_rows(Var After, Before: matrix);
begin
writeln('Заглушка');
After := Before; { просто вернуть исходную матрицу }
end;
Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...
Ты заголовок подпрограммы привести можешь? Или так и будем гадать? Откуда я знаю, КАК твоя подпрограмма должна "вывести" одномерный столбец, через параметры, или на печать через WriteLn ??
Ну, начнем с того, что F1 не возвращается в вызывающую программу, так что про нее забудь Ну, допустим вот такой вариант ЗАГЛУШКИ (ну поймите же вы, что эта вещь возвращает не то, что должно вернуться, а то, что ТЫ хочешь чтобы вернулось !!!)
Procedure Stolb(Var A:Dvum; n,m:integer; Var NoS;Fl:Boolean);
var i: integer;
begin
writeln('Заглушка');
for i := 1 to n - 1 do
odin(NoS)[i] := i;
end;