Как вы обычно относитесь к аспектам TDD вашего приложения, которым требуется доступ к системным переменным операционной системы?
Например, мое приложение должно быть в состоянии правильно получить имя пользователя операционной системы, вошедшего в систему в данный момент.
Так что я TDD функция, которая делает это, и она называется:
string getUserNameFromSystemEnvironment();
У меня проблема:
Я запускаю тест на своем компьютере, поэтому я знаю, какое имя пользователя (например, FooBar
). Я TDD getUserNameFromSystemEnvironment()
путем жесткого кодирования FooBar
в моем тесте, как.
EXPECT_EQ(getUserNameFromSystemEnvironment(), "FooBar");
Очевидно, этот тест работает нормально на моей машине, но не на других. Чтобы он нормально работал на
другие, однако, мне нужно будет использовать getUserNameFromSystemEnvironment()
. Но тогда, этот вид поражает цель теста, потому что у нас будет:
EXPECT_EQ(getUserNameFromSystemEnvironment(),
getUserNameFromSystemEnvironment());
Есть идеи?