Если ваш связанный список будет вообще полезен, он покажет некоторые вещи, которые предоставят вам доступ к этой информации. Например, в реализации, которую я разместил здесь http://flexdiary.blogspot.com/2009/12/riadventure-inspiration.html, сам список на самом деле не отображается (поскольку связанный список - это в основном только его узлы - поэтому, чтобы сделать его более полезным, я выделил курсор, который может перебрать ссылки).
У курсора есть узел точки входа для списка, поэтому, если вы хотите, вы можете проверить, что список был создан, проверив точку входа. Но он передается как аргумент конструктора, поэтому многие люди просто воспринимают его как прочитанное и не беспокоятся о тесте.
Чтобы проверить, что ссылка была добавлена в конце, вы можете выполнить итерацию до конца и проверить, что узел, который находится в конце, является тем, который вы добавили (если ваш список не является циклическим, в этом случае у вас может быть трудно определить, что вы достигли конца). Однако смысл связанного списка состоит в том, что вы добавляете ссылки в той точке, где вы находитесь (путем установки nextLink или любого другого свойства предыдущей ссылки на новый узел - и previousLink старого nextLink на новый узел, если он связан в обоих направлениях), поэтому у вас может возникнуть эта проблема, потому что вы пытаетесь создать совершенно новую конструкцию, когда вам лучше использовать Array.
Обратите внимание, что если вы хотите использовать мою реализацию, добро пожаловать. Я написал его до того, как начал заниматься TDD, поэтому у него нет тестов, но я использовал его как минимум в трех проектах в той или иной форме.