Тесты для текстов
Очень часто я получаю баги в трекинговой системе на орфографические ошибки (кстати, а вы получаете такие баги?). И вот в этой статье я опишу, как мне удалось снизить количество орфографических ошибок в строковых ресурсах. Поехали!
Hunspell
На самом деле идея очень простая - чтобы не получать баги на орфографические ошибки в текстах,
нужно написать тесты на проверку орфографии текстов в строковых ресурсах. Осталось только найти
надежную и быструю библиотеку проверки орфографии… И такая нашлась! Встречайте -
Hunspell - популярная spell-checking
библиотека, используется
в Google Chrome, LibreOffice,
Apple OS X и еще много где. Правда нам нужна возможность
запуска из Java, и такой способ тоже нашелся -
HunspellBridJ. Теперь можно в тестах,
написанных на Java, проверять корректность орфографии в словах.
Как?
Для того, чтобы использовать hunspell
в тестах, я реализовал
библиотеку-обертку arspell
. Воспользоваться ей можно так:
dependencies {
testImplementation 'com.nikialeksey:arspell:1.0.0'
}
class ResourcesTest {
@Test
fun enSpell() {
val errors = HunspellCheck(
Hunspell(
"./src/test/assets/en_US/index.dic",
"./src/test/assets/en_US/index.aff"
),
AndroidStrings(File("./src/main/res/values-en/strings.xml"))
).check()
Assert.assertTrue(ErrorMessage(errors).asString(), errors.isEmpty())
}
}
Словари для конкретного языка можно взять тут.
Конечно же, там словари достаточно общие. Это значит, что придется добавлять слова в словари,
и, чтобы иметь такую возможность, необходимо ознакомиться с
документацией по hunspell
.
Не получать баги за офрографию можно, достаточно лишь писать unit-тесты на локализацию!