#playframework-2.6
#playframework-2.6
Вопрос:
В моем приложении play framework есть файл messages, который я могу использовать для определения своих собственных сообщений. Например
##############Application Error messages
error.incorrectBodyType=Incorrect body type. Body type must be JSON
error.incorrectBodyContentInLoginRequest=No Login info found in the request. Check format
error.incorrectUsernameOrPassword = Incorrect username or password
error.unregisteredUser = registration not complete
error.ghostUsername = No record found for the username
error.unauthenticated = You must first sign in
error.unauthorized = You are not permitted
####### Application Success Messages
success.signoutSuccessful = Signout Successful
Фреймворки play делают эти сообщения доступными для меня Controller
, и я могу использовать их как messagesApi("error.unauthenticated")(langs.availables(0))
.
Я не могу понять, как я могу использовать messages
файл в своих модульных тестах. Я использую внедрение во время компиляции и создаю свои собственные экземпляры требуемых классов. Для создания MessagesApi
существует DefaultMessagesApi
метод, но он принимает a map
, а не a File
.
Я могу создавать сообщения в своих модульных тестах следующим образом, но мне приходится дублировать усилия по копированию сообщений из messages
файла в это map
val messagesApi = new DefaultMessagesApi( //takes map of maps. the first is the language file, the 2nd is the map between message title and description
Map("en" -> //the language file
Map("error.incorrectBodyType" -> "Incorrect body type. Body type must be JSON",
"error.incorrectUsernameOrPassword"->"Incorrect username or password",
"error.incorrectBodyContentInLoginRequest"->"No Login info found in the request. Check format", //map between message title and description
"error.unregisteredUser" -> "registration not complete",
"error.ghostUsername" -> "No record found for the username",
"success.signoutSuccessful" -> "Signout Successful",
"error.unauthenticated" -> "You must first sign in",
"error.unauthorized" -> "You are not permitted")
)
)
Есть ли способ, которым я могу прочитать messages
файл и использовать его в моем тестовом примере?
Ответ №1:
Мой тестовый пример уже расширен OneAppPerSuiteWithComponents
. Я использовал components.messagesApi
OneAppPerSuiteWithComponents
тот, который уже был доступен и считывается из messages
файла