Я пишу тест, который вызывает метод, который потенциально может вернуть ноль. В этом конкретном c тесте возвращаемый объект должен не быть нулевым, а какое-то свойство в нем должно соответствовать указанному c значению. Пример:
var obj = thing.GetObject();
Assert.That(obj, Is.Not.Null);
Assert.That(obj.Name, Is.EqualTo("Name"));
Это моя привычка из C ++, где у вас обычно есть утверждение до использования указателя, так как доступ к null может привести к sh модульному тесту (и вы захотите чтобы избежать этого). Однако в C# доступ к нулевым объектам является обычным исключением. Является ли хорошей практикой делать то, что я сделал выше, или просто go вперед и получить доступ к объекту и полагаться на исключение, чтобы не пройти тестовый случай, если объект нулевой? Как в:
var obj = thing.GetObject();
Assert.That(obj.Name, Is.EqualTo("Name")); // Throws if `obj` is null