我正在为我们的 Android 应用程序中的本地化进行一些单元测试。现在,我的单元测试会检查我们所有不同语言环境的所有不同格式字符串,以确保翻译人员不会把它们弄乱(他们倾向于这样做)。基本上我确保调用 String.format() 不会引发格式异常。
唯一的缺点是我需要手动将每个字符串添加到测试中。我正在做一个替换测试,它使用反射来查找 R.string 中的每个字符串。获取字符串不是问题,但是有没有简单的方法来确定格式字符串期望的参数的数量和类型?
String.format() 如果你传递了太多的参数,它不会抱怨,所以我可能只是传递一个大的整数数组(它可以被拆箱到 %d 或 toString()'ed 到 %s)并查找格式异常. 不过,如果我能以正确的数量传递正确类型的参数,那就更好了:)