ShouldHave () имеет двойное значение. В первом случае ShouldHave () возвращает объект, предоставленный субъектом-параметром. Во втором случае возвращение относится к элементам перечисления, а не к самому перечислению.
В случае, если я создаю свою собственную коллекцию и хочу проверить саму эту коллекцию (не элементы), я, конечно, хочу, чтобы назывался ShouldHave (этот T-субъект), а не ShouldHave (этот IEnumerable субъект).
Может быть, вам следует пересмотреть свой дизайн.
Второй ShouldHave () выполняет две функции, поэтому его следует разделить на метод, который извлекает элементы коллекции, и вызовом первого метода ShouldHave (), который у вас уже есть.