Я работаю над некоторыми модульными тестами для локализации в нашем приложении для Android. Прямо сейчас мой модульный тест проверяет все наши разные строки формата для всех наших разных локалей, чтобы убедиться, что переводчики не испортили их (что они обычно и делают). В основном я уверен, что вызов String.format() не вызовет исключение формата.
Единственным недостатком является то, что мне нужно вручную добавлять каждую строку в тест. Я работаю над тестом замены, который использует отражение, чтобы найти каждую строку в R.string. Получить строки не проблема, но есть ли простой способ определить количество и типы аргументов, ожидаемых строкой формата?
String.format() не жалуется, если вы передаете слишком много аргументов, поэтому я, вероятно, мог бы просто передать большой массив целых чисел (который может быть распакован в %d или toString() в %s) и искать исключения формата . Тем не менее, было бы немного лучше, если бы я мог передавать правильные типы аргументов в правильных количествах :)