Я собираюсь согласиться со всеми остальными, но с немного другим акцентом: модульные тесты — это способ подтвердить ваше понимание того, как должен вести себя тестируемый код и как некоторые данные должны выглядеть впоследствии, и передать то же самое. понимания тому, кто просто читает тест.
В таком языке, как JavaScript, вы можете утверждать, что результатом вызова функции является целое число или строка, в другом языке компилятор может позаботиться об этом за вас, отказавшись от компиляции.
Вы имеете дело с C#, если у вас не включена возможность обнуления И вы понимаете, что конкретное значение не должно быть нулевым, тогда вам АБСОЛЮТНО следует провести тест, который проверяет, что это значение не равно нулю. Независимо от того, что это случайно проверяется каким-то другим тестом. Теперь вопрос о том, следует ли включать этот тест в более крупный тест или отдельно в его собственный изолированный тест, является более сложным. Чем сложнее тест, тем сложнее его понять, но проверка на null не делает его намного сложнее.
И тогда, конечно, возникает вопрос, что делать, когда включено значение nullable. Как вы понимаете, значение не должно быть нулевым, и компилятор лишь частично обеспечивает это. Что делать?
Утверждение, что в этом случае оно не должно быть нулевым, не добавляет гипотетическому читателю понимания, что сам язык передает эту информацию. Включите конкретный тест на null, только если это была реальная проблема, и вы тестируете регрессию, и включите этот факт в комментарии.
Прикрепляю к посту несколько видео по теме: