Details
Description
The name RunnableStory has become outdated and does not reflect the fact that we can run multiple stories or even have access to other Embedder functionality. Embeddable is a more generic name that's better suited.
The two methods that should remain in Embeddable are:
void useEmbedder(Embedder);
void run();
The other methods that were previously in RunnableStory can live in abstract implementations, such as ConfigurableEmbedder which JUnitStory extends and allows the configuration of the embedder for execution of a single story.
Activity

Field | Original Value | New Value |
---|---|---|
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |

Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |

Summary | Remove redundant getter methods in RunnableStory | Renamed interface RunnableStory -> Embeddable and remove redundant methods |
Description |
RunnableStory getter methods are now redundant. They could lead to confusion as users may override them believing they would be used by the story embedder.
|
The name RunnableStory has become outdated and does not reflect the fact that we can run multiple stories or even have access to other Embedder functionality. Embeddable is a more generic name that's better suited.
The two methods that should remain in Embeddable are: void useEmbedder(Embedder); void run(); The other methods that were previously in RunnableStory can live in abstract implementations, such as ConfigurableEmbedder which JUnitStory extends and allows the configuration of the embedder for execution of a single story. |

Summary | Renamed interface RunnableStory -> Embeddable and remove redundant methods | Rename RunnableStory -> Embeddable and remove redundant methods |

Summary | Rename RunnableStory -> Embeddable and remove redundant methods | Rename RunnableStory to Embeddable and remove redundant methods |

Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Not sure if this is a related issue or not.
The following method change would make more sense in AbstractStory
protected StoryEmbedder configuredEmbedder()
{ embedder.useConfiguration(getConfiguration()); embedder.useCandidateSteps(getSteps()); return embedder; }While the getters are no longer part of the interface, they could be protected and part of the AbstractStory.
This allows a user to configure a story via overriding.
Thus the options for story configuration are:
1. Constructor
2. Lifecycle method (@Before)
3. Overriding getter methods
This is important for use with IoC containers as they should not be started up in the constructor of the test class but rather as part of the running of the test.