Я пишу модульный тест для метода, который упаковывает логические значения в байт. Различные битовые местоположения определяются значением перечисления, которое в настоящее время имеет только 5 значений, но вполне возможно (хотя и крайне маловероятно), что это число может перейти к 9.
Я бы хотел провести простой тест в следующем виде:
закрытый байт m_myNum;
enum MyEnum {...}
assert (sizeof (m_myNum) <= MyEnum.values (). Length); </p>
У меня сложилось впечатление, что в Java нет функции sizeof. Какой самый элегантный обходной путь?
--- EDIT
Не думаю, что мне было ясно. Я не беспокоюсь о нормальном времени выполнения. Моя проблема в том, что теперь я могу написать этот код с байтом, в котором хранится вся информация, но, поскольку Enum растет в несвязанной части кода, я могу достигнуть точки, где мой код битовой маскировки нарушается. Вместо того, чтобы иметь это в развернутом приложении, я хотел бы провести модульный тест, который не проходит, когда число состояний в перечислении превышает число битов в переменной хранения, поэтому, когда программист добавляет это девятое перечисление, они могут настроить тип переменной для чего-то более восьми битов.