Проблема не в утверждении, а в Arrange или Act части тестового примера: при модульном тестировании вы вызываете [маленький] кусок кода в контролируемой среде . То есть вы должны знать, как будет вести себя тестируемое программное обеспечение, и, следовательно, знать, будет ли оно возвращать нулевой указатель или пустую строку. Каждый тест должен иметь один ожидаемый результат .
... Если вы не используете свой тест для нескольких функций / методов, которые ведут себя по-разному, или какого-либо стороннего кода, который, кажется, ведет себя по-разному в разных ситуациях.
Если это так, то «Одно утверждение на правило» - это просто руководство, и вы можете использовать утверждение, как показано на рисунке. Если этот тест не пройден, это будет означать, что возвращаемый foo является непустой строкой.
Или вы можете создать функцию для проверки пустых строк, которая также будет проверять, не равен ли указатель строки нулю:
Assert(is_empty_string(foo));
Ваш языковой класс строки может предоставить этот метод.