BDD on Creatine
In an attempt to further understand BDD, I chose to revise the code from my previous post after receiving some amazing advice from two people I regard highly (Scott & JP). I should state that this is my interpretation of that advice. This may or may not be the direction they were trying to guide me towards.</p>
12 public class when_prompted_to_save_changes_to_the_project : concerns_for<SaveChangesView>
13 {
14 context c = () => { presenter = an<ISaveChangesPresenter>(); };
15
16 after_the_sut_has_been_created after = () =>
17 {
18 save_changes_window = sut;
19 save_changes_window.attach_to(presenter);
20 };
21
22 protected static ISaveChangesPresenter presenter;
23 protected static SaveChangesView save_changes_window;
24 }
25
26 public class when_the_save_button_is_pressed : when_prompted_to_save_changes_to_the_project
27 {
28 it should_save_the_current_project = () => presenter.was_told_to(x => x.save());
29
30 because b = () => save_changes_window.save_button.control_is(x => x.OnClick(new EventArgs()));
31 }
32
33 public class when_the_cancel_button_is_pressed : when_prompted_to_save_changes_to_the_project
34 {
35 it should_not_continue_processing_the_previous_action = () => presenter.was_told_to(x => x.cancel());
36
37 because b = () => save_changes_window.cancel_button.control_is(x => x.OnClick(new EventArgs()));
38 }
39
40 public class when_the_do_not_save_button_is_pressed : when_prompted_to_save_changes_to_the_project
41 {
42 it should_not_save_the_project = () => presenter.was_told_to(x => x.dont_save());
43
44 because b = () => save_changes_window.do_not_save_button.control_is(x => x.OnClick(new EventArgs()));
45 }
</p>
I hope this is slightly more soluble, then my previous post.