2016-04-30 11 views
0

を示しています。テストは、私は、次の鳳凰アプリケーションを持っている

mix phoenix.new my_app --database mysql 
cd my_app 
mix ecto.create 
mix phoenix.gen.html User users name:string 
mix ecto.migrate 

mix testは問題外とを介して実行されます。

test/controllers/user_controller_test.exsには、@valid_attrs %{name: "some content"}のためにそこにあるshowに「ユーザーを表示」ではなく「一部のコンテンツ」が表示されるように変更すると、テストに失敗します。それはなぜですか? user#showには、ページに「何らかのコンテンツ」があるはずです。 developmentモードでブラウザで手作業で試してみたところです。

どこが間違いですか?どうすれば修正できますか?

テスト/コントローラ/ user_controller_test.exs

defmodule MyApp.UserControllerTest do 
    use MyApp.ConnCase 

    alias MyApp.User 
    @valid_attrs %{name: "some content"} 
    @invalid_attrs %{} 

    [...] 

    test "shows chosen resource", %{conn: conn} do 
    user = Repo.insert! %User{} 
    conn = get conn, user_path(conn, :show, user) 
    assert html_response(conn, 200) =~ "some content" 
    end 

    [...] 

テスト出力

$ mix test 
........ 

    1) test shows chosen resource (MyApp.UserControllerTest) 
    test/controllers/user_controller_test.exs:29 
    Assertion with =~ failed 
    code: html_response(conn, 200) =~ "some content" 
    lhs: "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <meta name=\"description\" content=\"\">\n <meta name=\"author\" content=\"\">\n\n <title>Hello MyApp!</title>\n <link rel=\"stylesheet\" href=\"/css/app.css\">\n </head>\n\n <body>\n <div class=\"container\">\n  <header class=\"header\">\n  <nav role=\"navigation\">\n   <ul class=\"nav nav-pills pull-right\">\n   <li><a href=\"http://www.phoenixframework.org/docs\">Get Started</a></li>\n   </ul>\n  </nav>\n  <span class=\"logo\"></span>\n  </header>\n\n  <p class=\"alert alert-info\" role=\"alert\"></p>\n  <p class=\"alert alert-danger\" role=\"alert\"></p>\n\n  <main role=\"main\">\n  <h2>Show user</h2>\n\n<ul>\n\n <li>\n <strong>Name:</strong>\n \n </li>\n\n</ul>\n\n<a href=\"https://stackoverflow.com/users/16/edit\">Edit</a>\n<a href=\"/users\">Back</a>\n\n  </main>\n\n </div> <!-- /container -->\n <script src=\"/js/app.js\"></script>\n </body>\n</html>\n" 
    rhs: "some content" 
    stacktrace: 
     test/controllers/user_controller_test.exs:32 

....... 

Finished in 0.4 seconds (0.2s on load, 0.1s on tests) 
16 tests, 1 failure 

Randomized with seed 734322 

答えて

1

nilに設定されているすべてのフィールドを持つユーザーを挿入

user = Repo.insert! %User{} 

あなたは@valid_attrsでユーザーを作成したい場合は、その行に変更します。

user = Repo.insert! User.changeset(%User{}, @valid_attrs) 
関連する問題