我如何使用邮件文件创建自己的邮件

时间:2019-04-12 20:38:41

标签: playframework-2.6

在我的游戏框架应用程序中,有一个消息文件,可以用来定义自己的消息。例如

##############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方法,但是需要使用map,而不是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 个答案:

答案 0 :(得分:0)

我的测试用例已经扩展了OneAppPerSuiteWithComponents。我使用了components.messagesApi中的OneAppPerSuiteWithComponents,该文件已经可用并从messages文件中读取