 		)
 	}
 
-	func test_scenarioWithGivenWhenThenSteps() {
-		given_scenario(
-			scenario("name", [
-				given("a"),
-				when("b"),
-				then("c")]
-			)
-		)
-		
-		then_scenarioShouldBe(
+	func test_scenarioWithMultipleSteps() {
+		when_parsing(
+			"""
+			Feature: f
+			Scenario: name
+				Given a
+				And b
+				When c
+				Then d
+				But e
+			""")
+		
+		then_generatedScenarioShouldBe(
 			"""
 			func testNameTests() {
 			do {
 			try testRunner.executeStep(.given, \"a\")
-			try testRunner.executeStep(.when, \"b\")
-			try testRunner.executeStep(.then, \"c\")
+			try testRunner.executeStep(.and, \"b\")
+			try testRunner.executeStep(.when, \"c\")
+			try testRunner.executeStep(.then, \"d\")
+			try testRunner.executeStep(.but, \"e\")
 			} catch {
 			XCTFail(\"\\(error)\")
 			}

	}

	func test_scenarioWithOneThenStep() {
		given_scenario(
			scenario("name", [
				then("something")]
			)
		)
		
		then_scenarioShouldBe(
			"""
			func testNameTests() {
			do {


	// MARK: - Steps with table arguments
	func test_scenarioWithGivenStep_withTableArgumentWithOneRow() {
		when_parsing(
			"""
			Feature: f
			Scenario: name
				Given a
					| col  |
					| r1c1 |
			""")

		then_generatedScenarioShouldBe(
			"""
			func testNameTests() {
			do {
