{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"never","basic_auth":false,"params":[],"results":{"codes":[]},"try":true},"next":{"description":"","pages":[]},"title":"Performing an action with 'When'","type":"basic","slug":"performing-an-action-with-when","excerpt":"","body":"In the [Given, When, Then](doc:given-when-then) setup, the When step is for you to perform the action you are interested in against the [System Under Test (SUT)](doc:the-system-under-test-sut).  \n\nConsider our simple spec again: \n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Given a car is started, when the car is stopped, then the engine is stopped.\"\n}\n[/block]\nTo perform the action, \"when the car is stopped,\" we can override SpecsFor's When method, and call the Stop method on our SUT:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"protected override void When()\\n{\\n  //When: perform an action, in this case, stopping the car.\\n  SUT.Stop();\\n}\",\n      \"language\": \"csharp\"\n    }\n  ]\n}\n[/block]","updates":[],"order":6,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5448536e4544c30800241f48","is_link":false,"__v":2,"githubsync":"","category":{"sync":{"isSync":false,"url":""},"pages":["544853a8c1b42e08005b82b6","5447ecac8d7af31a00dd4119","5447ed6d0319802200fc0705","5447ef7a8d7af31a00dd4125","54485217c1b42e08005b82a6","5448536e4544c30800241f48","54485396c1b42e08005b82b2","547c7c5f78fd57080023c99c"],"title":"Basics","slug":"basics","order":2,"from_sync":false,"reference":false,"_id":"544854e74544c30800241f51","project":"54471fc9e12a270800028adc","version":"54471fc9e12a270800028adf","createdAt":"2014-10-23T01:07:51.270Z","__v":1},"project":"54471fc9e12a270800028adc","user":"54471f91beb6320800da6f75","version":{"version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["54471fc9e12a270800028ae0","5447b9e7b96a63140077d747","5447be130319802200fc0620","5447ed118d7af31a00dd411c","5447ed230319802200fc0702","5448524c4544c30800241f41","544854504544c30800241f4d","544854af4544c30800241f50","544854e74544c30800241f51","54485557c1b42e08005b82bf"],"_id":"54471fc9e12a270800028adf","__v":10,"project":"54471fc9e12a270800028adc","releaseDate":"2014-10-22T03:08:57.750Z","createdAt":"2014-10-22T03:08:57.750Z"},"createdAt":"2014-10-23T01:01:34.600Z"}

Performing an action with 'When'


In the [Given, When, Then](doc:given-when-then) setup, the When step is for you to perform the action you are interested in against the [System Under Test (SUT)](doc:the-system-under-test-sut). Consider our simple spec again: [block:callout] { "type": "info", "body": "Given a car is started, when the car is stopped, then the engine is stopped." } [/block] To perform the action, "when the car is stopped," we can override SpecsFor's When method, and call the Stop method on our SUT: [block:code] { "codes": [ { "code": "protected override void When()\n{\n //When: perform an action, in this case, stopping the car.\n SUT.Stop();\n}", "language": "csharp" } ] } [/block]