Сообщение Re: вопрос от 08.08.2015 16:10
Изменено 08.08.2015 16:13 Pavel Dvorkin
Здравствуйте, another_coder, Вы писали:
А почему не применить следующий подход : методы являются private, если нет
#define TEST
иначе они public ?
Тесты могут спокойно их тестировать, вызвать их в production, где не положено, не удастся.
В С++ можно и элегантнее написать
А почему не применить следующий подход : методы являются private, если нет
#define TEST
иначе они public ?
Тесты могут спокойно их тестировать, вызвать их в production, где не положено, не удастся.
// TEST определен в свойствах проекта
class C {
#if( TEST)
public
#else
private
#endif
static void f() { }
}
class Program
{
static void Main(string[] args)
{
C.f();
}
}
В С++ можно и элегантнее написать
#ifdef TEST
#define ACCESS_LEVEL public:
#else
#define ACCESS_LEVEL private:
#endif
class C {
ACCESS_LEVEL static void f() {}
};
int _tmain(int argc, _TCHAR* argv[])
{
C::f();
return 0;
}
Re: вопрос
Здравствуйте, another_coder, Вы писали:
А почему не применить следующий подход : методы являются private, если нет
#define TEST
иначе они public ?
Тесты могут спокойно их тестировать, вызвать их в production, где не положено, не удастся.
В С++ можно и элегантнее написать
А почему не применить следующий подход : методы являются private, если нет
#define TEST
иначе они public ?
Тесты могут спокойно их тестировать, вызвать их в production, где не положено, не удастся.
// TEST определен в свойствах проекта
class C {
#if( TEST)
public
#else
private
#endif
static void f() { }
}
class Program
{
static void Main(string[] args)
{
C.f();
}
}
В С++ можно и элегантнее написать
#ifdef TEST
#define ACCESS_LEVEL public
#else
#define ACCESS_LEVEL private
#endif
class C {
ACCESS_LEVEL :
static void f() {}
};
int _tmain(int argc, _TCHAR* argv[])
{
C::f();
return 0;
}