ich, dass anstatt zu versuchen, würde empfehlen, den CSS-Stil zu finden, können Sie Ihre Tests statt schreiben die CSS-Klassennamen zu finden.
Auf diese Weise können Sie das zugrunde liegende CSS-Styling ändern, während Sie die Klasse beibehalten und Ihre Tests bestehen bleiben.
Die Suche nach dem zugrunde liegenden Stil ist spröde. Stile ändern sich häufig. Wenn Sie Ihre rspecs auf das Finden bestimmter Stilelemente ausrichten, werden Ihre Tests spröder - sie werden eher ausfallen, wenn Sie nur das Aussehen und Verhalten eines divs ändern.
Wenn Sie Ihre Tests zum Auffinden von CSS-Klassen durchführen, werden die Tests robuster. Dadurch können Sie sicherstellen, dass Ihr Code ordnungsgemäß funktioniert, ohne dass Sie sie beim Ändern des Seitenstylings ändern müssen.
In diesem Fall kann eine Option sein, eine CSS-Klasse mit dem Namen .hidden
zu definieren, die display:none;
auf ein Element setzt, um es auszublenden.
So:
css:
.hidden {
display:none;
}
html:
<div class="hidden">HIDE ME!</div>
Capybara:
it {should have_css('div.hidden') }
Das Capybara nur für ein div sieht, der die hidden
hat Klasse - Sie können diesen Matcher anspruchsvoller machen, wenn Sie ihn brauchen.
Aber der Hauptpunkt ist dies - Stile an CSS Klassennamen anhängen, binden Sie dann Ihre Tests an die Klassen, nicht die Stile.
Was ist der Fehler? –