IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Заглушки и драйверы
Serega18
сообщение 4.06.2005 14:12
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Начал изучать паскаль модульной структуры и услышал такой термин как заглушки .Как я понял небольшая программа для тестирования процедур при .
Хотелось бы посмотреть какой-нибудь пример.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 4.06.2005 14:22
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Драйверы и заглушки это программы, которые используют для проверки тестовых наборовданных (вобщемдл ятестирвоания).
Драйвер это программа, тестирующая какой-то модуль, (технология восходящего тестирования), то есть программа вызывает например какую-то процедуру из тестируемого модуля ипроверяет входные данные и наболр выходных.

А заглушка это программа которая служит для утановки вместо какого-то модуля (тестирование нисходящее).
Пример


uses A;
var c:byte;
begin
readln©
writeln(F©);
end.


модуль B

Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
f:=x*2;
end;
end.


Тогда при тестирвоании нисходящшем, мы начинаем тестысглавнойпрограммы, идолжны сделать заггушку для модуля B, она будет выглядеть так примерно..


Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
writeln('подключенна заглугшка');
f:=10;
end;
end.



ТО есть она уже готовыеданные поставляет, в соотвествии стестом придуманным.
А драйвер к модулю B будет таким:

uses A;
begin
writeln(F(5));
end.



Serega18, а где ты учишься?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 14:26
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


МЭИ
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 4.06.2005 14:28
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Апо какой вы книге занимаетесь?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 4.06.2005 14:33
Сообщение #5


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Просто про это очень хорошо рассказанно в книге
Майерс Г. "Искуство тестирования программ" ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 14:34
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Задачник(Зубов,Котарова) и пяток методичек. и все
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 14:37
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


По ходу дела возник вопрос: у тебя в примере function а если будет procedure
от этого что-нибудь изменится?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 14:41
Сообщение #8


Гость






Цитата(Serega18 @ 4.06.05 14:37)
а если будет  procedure от этого что-нибудь изменится?

В общем случае - нет. На процедуру точно так же можно ставить заглушку, но
uses A;
begin
writeln(F(5));
end.
сделать это с процедурой F уже будет проблематично... ;)
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 14:56
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


А если б в модуле В было бы условие вроде этого
Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
if X>5 then
 f:=x*2;
end;
end.

То в заглушке было бы так?
Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
if x>5 then
 writeln('подключенна заглугшка');
  f:=10;
end;
end.

или останется как и было?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 15:09
Сообщение #10


Гость






Да в модуле (в функции) - хоть десяток условий. Заглушка останется такой же. Условия будешь проверять, когда будешь отлаживать саму функцию, а здесь идет отладка главной программы ...
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 15:14
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


значит я сначала делаю одну заглушку для основной программы а потом еще n-ое число для всех процедур?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 15:19
Сообщение #12


Гость






Когда ты переходишь к тестированию функции - делаешь заглушки для всего, что она использует, и на ИЗВЕСТНЫХ наборах данных (ведь заглушка возвращает то, что ты ей сказал вернуть) тестируешь работу этой функции...
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 15:38
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
 writeln('подключенна заглугшка');
  f:=10;
end;
end.

1)В данном примере F:=10 ,а если б была матрица A[i,j] то как это записать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 15:41
Сообщение #14


Гость






Что значит "матрица"? Результат функции? Так Turbo Pascal не позволяет возвращать результаты такого типа.
 К началу страницы 
+ Ответить 
Serega18
сообщение 4.06.2005 15:47
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Ну например в предыдущей задаче у меня была процедура(поменять местами столбец первый с indx)в результате эта процедура передавала матрицу измененную.В модульной структуре я загоняю ее в модуле В(например). В этом случае как быть?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 15:51
Сообщение #16


Гость






Procedure change_rows(Var After, Before: matrix);
begin
writeln('Заглушка');
After := Before; { просто вернуть исходную матрицу }
end;

Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!!
 К началу страницы 
+ Ответить 
Guest
сообщение 4.06.2005 21:39
Сообщение #17


Гость






Цитата(volvo @ 4.06.05 15:51)
Procedure change_rows(Var After, Before: matrix);
begin
  writeln('Заглушка');
  After := Before; { просто вернуть исходную матрицу }
end;

Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!!

А как будет выглядеть заглушка в случае входного данного массива двумерного, а выходного - одномерного массива и флажка?
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 21:43
Сообщение #18


Гость






Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...
 К началу страницы 
+ Ответить 
Guest
сообщение 4.06.2005 21:46
Сообщение #19


Гость






Цитата(volvo @ 4.06.05 21:43)
Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...

В общем в подпрограмме нужно вывести массив одномерный с номерами столбцов матрицы, в которых все эл-ты расположены в порядке возрастания эл-ов. И если такой столбец есть флажку присвоить истину.
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 21:49
Сообщение #20


Гость






Ты заголовок подпрограммы привести можешь? angry.gif Или так и будем гадать? Откуда я знаю, КАК твоя подпрограмма должна "вывести" одномерный столбец, через параметры, или на печать через WriteLn ??
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 1:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"