1

playframework 2.1 では、アクションをテストして、レンダリングされたビューが期待どおりのものであることを確認することはできますか?

ASP.NET MVC 3 では、AssertViewRendered().ForView("view")まさにそれをテストします。play 2.1 でそれを行うことはできますか? どのように?

私が達成したいことの非常に基本的なMVC 3の例:

// Given the action GetUsers that renders the view "Users", I would like to assert
// this view as the one I expect and no other.
public class UserController
{
    public ActionResult Index() {
        return View("Users");
    }
}

[Test]
public void GetUsersRendersCorrectView()
{
    // Setup
    var userService = new Mock<UserService>();
    var userController = new UserController(userService.Object);

    // Excercise
    var result = userController.GetUsers();

    // Verify
    result.AssertViewRendered().ForView("Users");
}

ありがとう。

4

2 に答える 2

1

Play でのビューのレンダリングはメソッド呼び出しのみです (テンプレートは単純な Scala 関数にコンパイルされます)。

「手動で構築された」関数を使用してビューのレンダリングを実装することを妨げるものは何もありません。

したがって、Resultアクションによって返された は、コンテンツがテンプレートからのものか、それ以外のものからのものかを知りません。そのため、達成したい種類のアサーションは Play では不可能です。

于 2013-07-18T06:54:08.323 に答える