Ich habe einige ähnliche Fragen bezüglich der Zeiträume hier gesehen, aber keine der Lösungen scheint für mich zu funktionieren. Was ich versuche, ist ein Datumsbereich von einem Monat und bestätigen, ob das heutige Datum in diesem Bereich liegt. Letztendlich wird dies für jeden Monat des Jahres in eine Case-Methode eingefügt, da die Funktionalität, die ich teste, datumsspezifisch ist.Gurken-Datumsbereiche Ruby
Ich habe versucht, die Daten in Ganzzahl zu konvertieren, um die Berechnung zu erleichtern (oder so dachte ich), dann between?
verwenden, um den Datumsbereich zu überprüfen.
Dies ist mein Code:
today = Time.now.to_i
month_start = Time.parse('1 Jan 2016').to_i
month_end = Time.parse('31 Jan 2016').to_i
if today.between?(month_start,month_end)
#do something
end
Wenn auf jede Variable ein Puts mit, dies ist der Ausgang:
Today = 1468479863
month_start = 1451606400
month_end = 1454198400
Wie Sie sehen können, sollte dies nicht als heute nicht zwischen den ist Datumsbereich, es ist weit außerhalb. Dennoch werden die Tests grün, was darauf hindeutet, dass meine if
-Anweisung, die die between?
-Methode enthält, nicht funktioniert.
Gibt es etwas blendend offensichtlich, dass ich hier vermisse, wie ich es nicht sehen kann.
Der Schritt im Feature ist hier:
Then(/^I can see that all results have a statement due this month$/) do
today = Time.now.to_i
month_start = Time.parse('1 Jan 2016').to_i
month_end = Time.parse('31 Jan 2016').to_i
results_table = all('table#clickable-rows tbody tr')
if today.between?(month_start,month_end)
results_table.each do |row|
within(row.all('td')[3]) do
statement_date = find('table#clickable-rows tbody tr td:nth-child(4) > span')
expect(statement_date).to have_text '1 Aug 2016'
end
end
end
end
es wäre hilfreich, wenn Sie enthalten die tatsächlichen Tests, die übergeben ... Ausführen des obigen Codes, 'zwischen?' funktioniert wie erwartet, da der Code in der 'if' Anweisung nicht ausgeführt wird ... –
Ich habe die Daten dieses Monats und den Test bestanden, so zu Bestätigung des Tests Ich habe dann das Monatsdatum auf Jan umgestellt, um sicherzustellen, dass der Test bei der if-Anweisung fehlgeschlagen ist (da das Datum im Januar nicht gefunden werden sollte) und der Test in den Ergebnissen weiterhin bestanden zu haben scheint. Ich habe den Test in die Frage aufgenommen. – Tom