Android 앱에서 현지화를위한 단위 테스트를하고 있습니다. 현재 단위 테스트는 모든 다른 로케일에 대해 서로 다른 모든 형식 문자열을 검사하여 번역자가 실수를 저 지르지 않았는지 확인합니다. 기본적으로 String.format()을 호출하면 형식 예외가 throw되지 않습니다.형식 문자열 (String.format()/Formatter)을 사용하면 예상되는 인수 형식을 쉽게 얻을 수 있습니까?
유일한 단점은 모든 문자열을 수동으로 테스트에 추가해야한다는 것입니다. R.string의 모든 문자열을 찾기 위해 리플렉션을 사용하는 대체 테스트를하고 있습니다. 문자열을 가져 오는 것은 문제가되지 않지만 형식 문자열이 예상하는 인수의 수와 유형을 결정하는 쉬운 방법이 있습니까?
너무 많은 인수를 전달하면 String.format()이 불만하지 않아서 정수 배열 (% d 또는())을 (를) % s에 적용 할 수있는 큰 배열을 전달할 수 있습니다. 형식 예외를 찾으십시오. 그래도 올바른 유형의 인수를 올바른 값으로 전달할 수 있다면 조금 더 좋을 것입니다.
FindBugs에는이 경우에 유용한 검사기가 있습니다. – bestsss
형식 문자열은 다양한 Android XML 파일에 모두 정의되어 있으므로 FindBugs가이 경우 나를 도울 수 있다고 생각하지 않습니다. –