lundi 15 juillet 2019

Testing workflow using parameterized test or separate test

How to test workflow - using separate test or parameterized test ?

I have workflow like this

A -> B -> c -> D -> E -->Z

User can skip any step between A and Z but not A and Z.

If I have to write test case shoud we write separate test case or parameterized test

if I write separate test I have to write four tests but with parameterized one less code.

I have tried parameterized test, as there are if statement in asserts it becomes less readable.

A = WorkflowStep('A')
B = WorkflowStep('B')
C = WorkflowStep('C')
D = WorkflowStep('D')
E = WorkflowStep('E')
Z = WorkflowStep('Z')


@pytest.mark.parametrize('skipStep', [([B]), ([C]), ([D]), ([E])])
test_skip_step(skipStep):
    workflow = Workflow.create().skip(skipStep);
    summary = workflow.goTo(Z)

    if skipStep != B:
       summary.hasB()
    if skipStep != C:
       summary.hasC()
    if skipStep != D:
       summary.hasD()
    if skipStep != E:
       summary.hasE()

What approach I should take? - Write separate test to test skipping each step? - Write parameterized test ?

Aucun commentaire:

Enregistrer un commentaire