Если вы действительно выставили оба как часть общедоступного интерфейса, это были бы два теста:
testPI() {
AssertEquals(PI, 3.14);
}
test_getPi() {
AssertEquals(getPi(), 3.14);
}
Однако, если PI
- это деталь реализации, а getPi
- общедоступное средствочтобы получить значение, вы должны написать test_getPi
, как указано выше, а PI
должно быть private
без testPI
модульного теста.Этот последний случай, вероятно, больше похож на то, что вы должны делать.
Полагаю, у вас может быть третий тест, подобный следующему:
test_getPi_PI_AlwaysAgree() {
AssertEquals(getPi(), PI);
}
Это говорит о том, что эти два фрагмента кода всегда должны оцениваться какодно и то же значение, независимо от того, что это значение. Если именно так и должна работать ваша логика, именно так вы и будете ее тестировать, но, скорее всего, у вас не должно быть двух одинаковых способов сделать одно и то же в первую очередь.
Обратите внимание, что этот последний тест не говорит о том, что getPi
должен возвращать 3.14
, только то, что два фрагмента кода должны иметь одинаковое значение, без указания того, что это за значение.Чтобы утверждать, что значение одного или другого должно быть некоторым конкретным значением, используйте один из первых двух тестов.