Ich muss die Werte in der Tabelle auf der Webseite überprüfen. In den meisten Fällen sind dies vorbekannte Werte. Aber manchmal ist der Wert zum Beispiel das aktuelle Datum. Ist es möglich, im Schritt "Dann" etwas wie "= heute()" zu schreiben und nur für diesen Fall keinen neuen Schritt zu erstellen? So kann ich so etwas wie dies mittels SpecFlow: Then I verify values in MyTable | ColumnA | ColumnB |ColumnC | | Electricity | 100 | =today() | | Electricity | 200 | =today() |
Wie schreibe ich einen SpecFlow-Schritt, um den Wert zu prüfen, der nur zur Testausführungszeit bekannt ist?
0
A
Antwort
0
Wenn der Wert aus einer Tabelle kommen hat, dann können Sie nur für Ihre bekannten Werte überprüfen und die Termine von ihnen erstellen. Etwas in dieser ungetesteten Linien:
[Then("I verify values in MyTable")]
public void ThenIVerifyValuesInMyTable(Table table)
{
foreach(var row in table.Rows)
{
DateTime comparisonDate;
if (row[2].Value =='Today')
{
comparisonDate=DateTime.Today;
}
else
{
comparisonDate = DateTime.Parse(row[2]);
}
comparisonDate.Should().Be(myTable.ExpectedDate);
}
}
0
Hoffnung hier ist eine Antwort Default Values Specflow Step Definitions SpecFlow „Schritt Argument Transformationen“ unterstützt das Erstellen. Mit ihnen können Sie Methoden erstellen, die Datetime aus verschiedenen Mustern analysieren kann:
[StepArgumentTransformation("todays date")]
public DateTime TransformToday()
{
return DateTime.Today;
}
Danach müssen Sie nur ein Datetime-param in Ihre Schritte verwenden, und der Rest wird durch SpecFlow getan ...
[Given(@"myfield equals (.*)")`enter code here`]
public void MyfieldEqualsTodaysDate(DateTime date)
{
//do stuff
}
Verwandte Themen
- 1. Wie kann ich einen Ausdrucksbaum verwenden, um eine generische Methode aufzurufen, wenn der Typ nur zur Laufzeit bekannt ist?
- 2. Variable in Typ konvertieren, der nur zur Laufzeit bekannt ist?
- 3. Funktion, die einen generischen Typ, deren Wert bekannt ist, nur zur Laufzeit
- 4. Wie kann ich ein Paket mit __import __() importieren, wenn der Paketname nur zur Laufzeit bekannt ist?
- 5. Javascript, um zu prüfen, ob ein Feld einen Wert hat
- 6. Es genügt, den Hash-Wert zu verwenden, um einen Dateiinhalt zu prüfen?
- 7. Wie leite ich 404 zu index.html um und schreibe die URL zur URL der Homepage um?
- 8. Wie schreibe ich einen Code um .fla Datei zu lesen?
- 9. Aufrufen einer generischen Methode mit Lambda Expressions (und einem Typ, der nur zur Laufzeit bekannt ist)
- 10. Wie schreibe ich einen Dekorator, um etwas in einen Kontextmanager zu verpacken, der Parameter nimmt?
- 11. Wie schreibe ich einen Scala-Unit-Test, der Compliation fehlschlägt?
- 12. Wie schreibe ich einen Matcher, der nicht gleich etwas ist
- 13. Wie verwende ich den Winkelmesser, um zu prüfen, ob ein Element sichtbar ist?
- 14. Wie schreibe ich einen Linker
- 15. Deaktivieren Sie den Wert nur, wenn der Wert 1 ist.
- 16. Get enum name wenn Wert bekannt ist
- 17. Übergeben von Konstruktorargumenten an eine benannte Instanz in der Strukturzuordnung. Typ ist nur zur Laufzeit bekannt.
- 18. Wie erhält man den Standardwert eines Typs, wenn der Typ nur als System.Type bekannt ist?
- 19. Wie schreibe ich einen PHP, um den JSON-Post von einem Webhook zu bekommen?
- 20. Prüfen, ob der Wert in der Auswahlliste mit JQuery ist
- 21. Wie schreibe ich einen Mono-Daemon
- 22. Platzhalter überladen, um den Wert zu übernehmen
- 23. Wie schreibe ich einen Algorithmus, um die Gesamtzahl der Muster der Summe zweier Zahlen zu finden?
- 24. Wie, um einen Wert
- 25. Wie schreibe ich eine bedingte http.get, um einen Datensatz zu erstellen, wenn es null angularjs ist
- 26. Ich schreibe Wrapper-Funktionen, nur um auf Async-Funktion zu warten. Wie vermeide ich dieses Muster?
- 27. Array-Größe nur zur Laufzeit in MIPS bekannt
- 28. Wie kann ich einen XAML-Trigger verwenden, um einem Wert einen Wert zu geben, der größer oder gleich ist?
- 29. Hbase Shell - wie schreibe ich Byte-Wert
- 30. Wie schreibe ich einen Bitstrom
Ich glaube nicht, dass dies mit einem Tabellenargument funktioniert, Sie müssten den Wert in eine Schrittdefinition setzen oder Beispiele verwenden –
Nun, ich konnte nicht mit Tabellenargumenten überprüfen. Aber ich überprüfte folgendes schnelles Beispiel [Dann (@ "Ich überprüfe Werte in Tabelle mit Datum"]] public void ThenIVerifyValuesInTableWithDate (Tabellentabelle) { var rr = table.CreateInstance(); Debug.Print (rr.ColumnC.ToString()); } } public class MyTable { public string ColumnnA {get; einstellen; } öffentliche Zeichenkette ColumnB {erhalten; einstellen; } public DateTime SpalteC { get {return DateTime.UtcNow; } set {}; } } –
Vitalii
Dies geht davon aus, dass Ihre Spalte immer die gleichen Daten enthält, in diesem Fall gibt es keinen Sinn in der Tabelle –