Могу я переопределять задачу: среда в test_helper.rb для тестирования задач граблей?

Вызов функции через указатель функции

float add(int , float),result;
int main()
{
 float (*fp)(int,float);
 float result;
 fp=add;
 result=add(5,10.9);      // Normal calling
 printf("%f\n\n",result);

 result=(*fp)(5,10.9);    //calling via function Pointer
 printf("%f\n\n",result);

 result=(fp)(5,10.9);    //calling via function Pointer,Indirection Operator can Be 
 omitted
 printf("%f",result);
 getch();
 }

float add(int a,float b)
{
return a+b;
}

Выход

15.90000
15.90000
15.90000
10
задан Michael Barton 29 May 2009 в 10:47
поделиться

3 ответа

Мое "решение" аналогичной проблемы заключалось в том, чтобы извлечь всю логику из моих файлов .rake и создать классы для выполнения задач, оставив только однострочный вызов в файле rake, который Я был уверен, что не буду слишком усердно тестировать. После этого классы можно было бы протестировать почти нормально.

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

Мне любопытно посмотреть, не пропустил ли я что-нибудь получше.

РЕДАКТИРОВАТЬ: Раньше здесь было сообщение в блоге , которое (a ) говорит то же самое и (б) говорит лучше. Похоже, он тоже это сказал первым.

9
ответ дан 4 December 2019 в 01:32
поделиться

при запуске тестов среда, которая загружается, является тестовой.

поэтому вы взаимодействуете с тестом только база данных.

Так что я не вижу причин переопределять вашу задачу rake в test_helper.rb

0
ответ дан 4 December 2019 в 01:32
поделиться

Думаю, вы ищете эту строку: require (File.join (RAILS_ROOT, 'config', 'environment')) это именно то, что вы найдете в "task: environment" реализация

Я использую его для тестирования моих задач с граблями с помощью rspec

1
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: