В конце конструктора объекта вы можете сериализовать объект в строку типа base 64 так же, как куки хранит его, и сохранить в переменной-члене.
Если вы хотите проверить, нуждается ли cookie в воссоздании, повторно сериализуйте объект и сравните эту новую строку base 64 с той, которая хранится в переменной-члене. Если он изменился, сбросьте cookie с новым значением.
Остерегайтесь ошибок - не включайте переменную-член, хранящую сериализацию base 64, в саму сериализацию. Я предполагаю, что ваш язык использует что-то вроде функции sleep () (как это делает PHP) для сериализации, так что просто убедитесь, что член не включен в эту функцию.
Это всегда будет работать, потому что вы сравниваете точное значение, которое вы сохраняете в cookie, и вам не нужно переопределять GetHashCode (), что может иметь неприятные последствия.
Все это говорит о том, что я, вероятно, просто уйду из теста и всегда сбрасываю cookie, не может быть слишком много накладных расходов по сравнению с выполнением проверки изменений и гораздо меньшей вероятностью ошибок.