Başlamak için, projeye ait bir proje adı ve girişleri gösteren çalışma rayları 'sayfası' sayfası vardı. Projenin adı açısal $ kapsamı ve ERB'de bir blok kullanarak girişler kullanılarak görüntülendiğinde, testlerim geçti. ERB kodunu giriş yönergesinin 'ng-repeat', sadece ile değiştirdiğimde girişlerim senaryoları başarısız olmaya başladı. İlginçtir, uygulama hala tarayıcıda çalışıyordu. Ve hatırla, benim görüşümdeki diğer $ kapsam değişkeni neredeyse aynı bir test kullanarak geçti ve hala devam ediyor.Özellik Testleri AngularJS Görünümleri, ERB'den Açısalya Geçiş Yaparken Bir Kırılımlar Uygulama Kopyalar
Çalışma show.html.erb (ERB içinde Görüntülenen Girişler):
<div ng-controller="ProjectCtrl">
<h1>This is {{ project.details.name }}</h1>
<h2>Entries</h2>
<% @entries.each do |e| %>
<ul>
<li>
<%= e.title %>
</li>
<li>
<%= e.summary %>
</li>
</ul>
<% end %>
</div>
Breaking show.html.erb (Açısal izlendi Girişler):
<div ng-controller="ProjectCtrl">
<h1>This is {{ project.details.name }}</h1>
<h2>Entries</h2>
<ul ng-repeat=" e in project.entries ">
<li>
{{ e.title }}
</li>
<li>
{{ e.summary }}
</li>
</ul>
</div>
Eğik Kontrolör, veri olmuştur döndürülmüş JSON ile değiştirilir.
scenario "Displays Entries Summary" do
project = Project.create!(details: {name: "aproject"})
Entry.create!(data: {summary: "Should Be Displayed"}, project_id: project.id)
Entry.create!(data: {summary: "Should Not Be Displayed"})
visit project_path(project.id)
page.must_have_content "Should Be Displayed"
page.wont_have_content "Should Not Be Displayed"
end
bir şey eksik veya ben özellik testi şekilde değiştirmek zorunda kalacaktır:
@ProjectCtrl = ["$scope", "$http", ($scope, $http) ->
$http.get().success (data) ->
$scope.project = {"details":{"name":"Project1","author":"brian"},"updated_at":"2013-04-13T16:48:46.406Z","entries":[{"title":"Test Title","summary":"Summary Test"},{"title":"The Third Entry","summary":"Summary of Third Entry"}]}
]
Bu daha önce çalışmış ancak ng tekrarı ile ERB değiştirdikten sonra başarısız bir örnek testtir?
Bounty cevabım bu işi neden yaptığını açıklayabilir kim gider. –