Комментарии 8
#[cfg(not(test))]
fn hello() -> &'static str {
return "Hello world";
}
#[cfg(test)]
fn hello() -> &'static str {
return "Hello test";
}
#[test]
fn test_hello() {
assert_eq!(hello(), "Hello test");
}
Великолепно, написали тест который тестирует тестовую реализацию - очень полезно.
Да и в целом, способ из растбука гораздо лучше предложенного - закрываем за cfg(test) целый модуль в котором, при необходимости, пишем моки и тп.
Совершенно вредный совет. Как минимум советуют делать фичи не взаимоисключающими. Во вторых, менять реализацию через фичи это нарушение принципов solid.
Все это даже не в духе джавы, а скорее в духе си.
Это полезно если надо пишешь обощенный код, но под конкретную архитектуру можно использовать и что то побыстрее. Например SSE2
Как вы советуете решать ту же проблему?
fn hello() -> &'static str {
return "Hello world";
}
->
fn hello() -> &'static str {
"Hello world"
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Тестирование Rust