Skip to content

Steps which return tasks that never complete, are never completed

Michael W Powell edited this page Dec 8, 2020 · 1 revision

This problem occurs when a step contains an expression which returns a Task which will never be completed.

For example, an expression which assigns a Task variable will return that Task:

"Given a task".x(() => task = new Task(() => { }));
//                     ^^^^^^^^^^^^^^^^^^^^^^^^^^

When the step is executed, xWellBehaved.net will await the Task before executing the next step. Because the Task never completes, the step will never complete.

The workaround is to use a block instead of an expression:

"Given a task".x(() => { task = new Task(() => { }); });
//                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Clone this wiki locally