Voici un exemple de test d'une fonction PySpark qui lève une exception. Dans cet exemple, nous vérifions qu'une exception est levée si l'ordre de tri est "cats"
.
def it_throws_an_error_if_the_sort_order_is_invalid(spark):
source_df = spark.create_df(
[
("jose", "oak", "switch"),
("li", "redwood", "xbox"),
("luisa", "maple", "ps4"),
],
[
("name", StringType(), True),
("tree", StringType(), True),
("gaming_system", StringType(), True),
]
)
with pytest.raises(ValueError) as excinfo:
quinn.sort_columns(source_df, "cats")
assert excinfo.value.args[0] == "['asc', 'desc'] are the only valid sort orders and you entered a sort order of 'cats'"
Notez que le test vérifie le message d'erreur spécifique qui est fourni.
Vous pouvez fournir des données non valides à votre rename_columnsName
et vérifiez que le message d'erreur correspond à ce que vous attendez.
Quelques autres conseils :
- suivre les exemples pour renommer les colonnes aquí y aquí . Vous ne devez pas appeler
withColumnRenamed
dans une boucle.
- Écrire des transformations de DataFrame à l'aide de le format de transformation standard afin qu'ils puissent être enchaînés avec DataFrame#transform
- utiliser pytest-describe d'organiser ces types de tests
- Vérifier ce fichier test pour une série d'exemples