Die Funktion des Testbeispielsatzes ist grob geschrieben, so dass er leicht zu merken ist. Wir können daher nicht garantieren, dass er für die Programmierung geeignet ist.
Verweise Ruby on Rails5-Kurzanleitung für das schnelle Lernen, die vor Ort verwendet werden kann
Einführung in RSpec, die verwendet werden kann, Teil 1 https://qiita.com/jnchito/items/42193d066bd61c740612
Erstellen Sie mit dem Rails-Generator ein geeignetes Gerüst
python
rails new plactice
python
rails db:create
python
rails g scaffold user name:string age:integer
python
rails db:migrate
python
rails s
Damit ist die Erstellung der Vorlage abgeschlossen. Erstellen Sie user.rb im Modellverzeichnis wie unten gezeigt
model/user.rb
class User < ApplicationRecord
def initialize(name:, age:)
@name = name
@age = age
end
def alcol
if @age < 20
"Seit ich 20 Jahre alt war"
else
"Mäßig sake!"
end
end
end
Komplett mit RSpec-bezogenen Edelsteinen und Einstellungen.
describe Deklarieren Sie die Testgruppierung und beschreiben Sie, welche Spezifikationen Sie testen möchten.
beschreiben kann verschachtelt werden Beschreiben Sie auf der äußersten Seite das Thema der gesamten Datei. Je tiefer das Nest, desto feiner das Thema.
python
RSpec.describe 'User' do
describe '#alcol_age' do
end
end
RSpec hinzufügen. Zur äußersten Beschreibung.
context
Die Funktion ist dieselbe (Alias) wie beschrieben, aber die verwendete Bedeutung ist unterschiedlich. Es wird verwendet, wenn Sie die Testinhaltsbedingungen für jede Variation teilen möchten.
python
RSpec.describe 'User' do
describe '#alcol_age' do
context 'Wenn der Benutzer unter 20 ist'do
end
context 'Wenn der Benutzer über 20 Jahre alt ist'do
end
end
end
it Beschreiben Sie das erwartete Verhalten der Funktion als Satz. Schreiben Sie hier eine Testaussage Und es ist in einer Einheit namens Beispiel zusammengefasst.
Wenn alle Pfade darin übergeben werden, bedeutet dies, dass das Beispiel (Test) bestanden wurde.
python
RSpec.describe 'User' do
describe '#alcol_age' do
context 'Wenn der Benutzer unter 20 ist'do
it 'Achtung Kommentare werden für unter 20 Jahre angezeigt' do
user = User.new(name: 'A', age: 18)
expect(user.alcol_age).to have_content 'Seit ich 20 Jahre alt war'
end
end
context 'Wenn der Benutzer über 20 Jahre alt ist'do
it 'Hinweis Der Kommentar muss für Personen über 20 Jahre angezeigt werden.' do
user = User.new(name: 'A', age: 20)
expect(user.alcol_age).to have_content 'Mäßig sake!'
end
end
end
end
before Wenn before in description oder context beschrieben ist, wird der im before-Block geschriebene Code ausgeführt, bevor der Testcode in diesem Bereich ausgeführt wird. Früher habe ich einen Benutzer damit erstellt, aber das vorherige Schreiben ist einfacher zu lesen und kann unter mehreren Bedingungen verwendet werden, sodass der Effekt, es trocken zu machen, auch erzielt werden kann.
python
RSpec.describe 'User' do
describe '#alcol_age' do
context 'Wenn der Benutzer unter 20 ist'do
it 'Achtung Kommentare werden für unter 20 Jahre angezeigt' do
user = User.new(name: 'A', age: 18)
expect(user.alcol_age).to have_content 'Seit ich 20 Jahre alt war'
end
end
context 'Wenn der Benutzer über 20 Jahre alt ist'do
it 'Hinweis Der Kommentar muss für Personen über 20 Jahre angezeigt werden.' do
user = User.new(name: 'B', age: 20)
expect(user.alcol_age).to have_content 'Mäßig sake!'
end
end
end
end
before wird jedes Mal ausgeführt, wenn es ausgeführt wird. Der Status der Datenbank wird zum Zeitpunkt der nächsten Ausführung wiederhergestellt, sodass grundsätzlich kein anderer Testfall vom Testfall betroffen ist.
python
RSpec.describe 'User' do
describe '#alcol_age' do
before do
@params = {name: 'A', age: 18}
end
context 'Wenn der Benutzer unter 20 ist'do
before do
@params.merge!(age: 18)
end
it 'Achtung Kommentare werden für unter 20 Jahre angezeigt' do
user = User.new(@params)
expect(user.alcol_age).to have_content 'Seit ich 20 Jahre alt war'
end
end
context 'Wenn der Benutzer über 20 Jahre alt ist'do
before do
@params.merge!(age: 20)
end
it 'Hinweis Der Kommentar muss für Personen über 20 Jahre angezeigt werden.' do
user = User.new(@params)
expect(user.alcol_age).to have_content 'Mäßig sake!'
end
end
end
end
let Variable Ticks, die in Tests verwendet werden können. Keine Variable, aber das verwendete Verhalten kommt einer Variablen nahe
python
let (Definitionsname) {Inhalt der Definition}
let wird beim ersten Aufruf von let aufgerufen. (Verzögerungsbewertung) Seien Sie also vorsichtig, da es niemals aufgerufen werden darf.
python
RSpec.describe 'User' do
describe '#alcol_age' do
let(:user) {User.new(params)}
let(:params) {{name: 'A', age: age}}
context 'Wenn der Benutzer unter 20 ist'do
let(:age) {18}
it 'Achtung Kommentare werden für unter 20 Jahre angezeigt' do
expect(user.alcol_age).to have_content 'Seit ich 20 Jahre alt war'
end
end
context 'Wenn der Benutzer über 20 Jahre alt ist'do
let(:age) {20}
it 'Hinweis Der Kommentar muss für Personen über 20 Jahre angezeigt werden.' do
expect(user.alcol_age).to have_content 'Mäßig sake!'
end
end
end
end
Das ist alles für die Grundlagen Andere Grammatiken werden separat hinzugefügt.
Wenn Sie Fragen haben, wäre ich Ihnen dankbar, wenn Sie nach einem Professor fragen könnten.
Recommended Posts