Nested Contexts to allow easier hierarchical tests
To make it easier to structure the tests (as described in this video by Kevlin Henney: https://www.youtube.com/watch?v=tWn8RA_DEic) it would be great to allow nesting of contexts:
create or replace package queue_spec as -- %suite(Queue Spec) -- %context(a_not_empty_queue) -- %context(that_is_not_full) -- %test procedure becomes_longer_when_non_null_value_enqueued; -- %test procedure becomes_full_when_enqueued_up_to_capacity; -- %endcontext -- %context(that_is_full) -- %test procedure ignores_further_enqueued_values; -- %test procedure becomes_non_full_when_dequeued; -- %endcontext -- %test procedure dequeues_values_in_order_enqueued; -- %endcontext end;
Leading to
Queue Spec
a_not_empty_queue
that_is_not_full
becomes_longer_when_non_null_value_enqueued [SUCCESS]
becomes_full_when_enqueued_up_to_capacity [SUCCESS]
that_is_full
ignores_further_enqueued_values [SUCCESS]
becomes_non_full_when_dequeued [SUCCESS]
dequeues_values_in_order_enqueued [SUCCESS]
What to do in case of missing endcontext?
Write a warning