<html><head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head><body bgcolor="#FFFFFF" text="#000000">Completely agree with most
of those points, Graham. Writing scenarios in isolation & skipping
'discovery' is not a good idea....and removes the benefits of BDD. If
writing scenarios isn't adding any value, and it's much easier to use
other formats....of course that's a no-brainer.<br>
<br>
The one part I don't think I follow is why tests written with cucumber
are necessarily difficult to refactor. As already mentioned, your
cucumber tests can just be 99% pure ruby code much like tests you write
with any other framework. Why do you not consider cucumber a 'proper'
testing framework?<br>
<br>
I also (incidentally) agree that the 'As a...I want to..' format isn't
the only way to write user stories. I've seen a lot of people go into
robot mode and churn out stories in that format for the sake of it; a
recommended read that touches on this is Gozko Adzic's book '50 quick
ideas to improve your user stories' <a class="moz-txt-link-freetext" href="https://leanpub.com/50quickideas">https://leanpub.com/50quickideas</a><br>
<br>
Whatever the testing framework used, I'd definitely recommend going
through the steps of capturing user stories/backlog items, refining
through conversations and analysis, agreeing a specification
collaboratively & testing against that specification. I think it's
possible to use cucumber for that last step, RSpec, other frameworks, or
to test manually. Like you say, many ways to skin a cat....<br>
<br>
<br>
Will<br>
<br>
<blockquote style="border: 0px none;"
cite="mid:01DB4E70-A314-4764-8DA5-747B96D81794@effectif.com" type="cite">
<div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div
style="display:table;width:100%;border-top:1px solid
#EDEEF0;padding-top:5px"> <div
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
photoaddress="graham@effectif.com" photoname="Graham Ashton"
src="cid:part1.06090100.02040904@theappbusiness.com"
name="postbox-contact.jpg" height="25px" width="25px"></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
<a moz-do-not-send="true" href="mailto:graham@effectif.com"
style="color:#737F92
!important;padding-right:6px;font-weight:bold;text-decoration:none
!important;">Graham Ashton</a></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;">
<font color="#9FA2A5"><span style="padding-left:6px">28 July 2014
14:26</span></font></div></div></div>
<div style="color:#888888;margin-left:24px;margin-right:24px;"
__pbrmquotes="true" class="__pbConvBody"><div><!----><br>I saw Liz Keogh
give a talk at at Nordevcon this year, entitled “10 years of Doing
Behaviour-Driven Development All Wrong”.<br><br>She (along with Dan
North) was one of the core developers of jBehave, which is where the
ideas that lead to Gherkin and Cucumber first saw the light of day.<br><br>Liz
told us that she and Dan both came (independently) to the same
conclusion relatively recently: Writing scenarios is useful, but
automating them is a big mistake.<br><br>That’s quite a statement.<br><br>The
point of writing scenarios was to enable “discovery”. To drive
conversations with stakeholders that would uncover what a product really
ought to do, and to do it early before time is spent committing to your
ideas in code.<br><br>With Cucumber, what they’ve observed in the wild
is developers sitting down and writing Gherkin in relative isolation. By
writing scenarios on their own, Liz has observed developers to be:<br><br>1.
Skipping the discovery step, and writing scenarios that don’t reflect
the actual requirements.<br><br>2. Committing to these mistakes early
(code is a commitment).<br><br>3. Using a framework that makes it
particularly difficult to refactor that code later (i.e. automating
Gherkin is a bigger commitment to a bad plan than writing conventional
tests would have been).<br><br>4. Confident (falsely) that they’re
solving the right problem, because they’re using BDD.<br><br>In other
words (these are direct quotes) “BDD is building software that matters”
and “Gherkin is the worst thing to happen to BDD”.<br><br>My notes also
contain the telling line “BDD gave people the illusion that you could
specify everything with scenarios”.<br><br>In this talk Liz provided the
first feasible explanation for something that has had me nonplussed for
years: Why did so many bright people, for whom I have a lot of respect,
continue to use and promote Cucumber, while I found it to be an utter
waste of time (and therefore money)?<br><br>Maybe scenarios gave them
confidence that they were solving the right problem, a feeling that
they’d otherwise been missing?<br><br>I do my “discovery" long before I
get near an editor. I sit down with stakeholders, sketch things on
paper, ask lots of questions and do everything I can to find out where
their expectations don’t tally with mine. Then I write story cards (not
in the limiting “As a potato...” form - in proper English, like a grown
up) that describe *why* we’re building what we’re building. I if I can’t
explain the why, I haven’t asked enough questions.<br><br>If I were to
sit down and write scenarios having had those conversations, they’d have
nothing left to teach me. Scenarios and Cucumber consequently feel like
dead weight *to me*.<br><br>If you don’t enjoy working the way I’ve
just described I can imagine that writing scenarios could be a useful
way to trigger discussions that would save a lot of time. Once you’ve
had those discussions, there’s no reason to waste time using them as a
basis for integration tests - I feel that job is better left to a proper
testing framework.<br><br>The only solid conclusion I can draw from all
these differing opinions is that there’s more than one way to skin a
cat!<br><br><br></div></div>
<div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div
style="display:table;width:100%;border-top:1px solid
#EDEEF0;padding-top:5px"> <div
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
photoaddress="anthony.charles.green@gmail.com" photoname="Anthony
Green" src="cid:part2.04090207.07000006@theappbusiness.com"
name="compose-unknown-contact.jpg" height="25px" width="25px"></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
<a moz-do-not-send="true"
href="mailto:anthony.charles.green@gmail.com" style="color:#737F92
!important;padding-right:6px;font-weight:bold;text-decoration:none
!important;">Anthony Green</a></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;">
<font color="#9FA2A5"><span style="padding-left:6px">28 July 2014
10:27</span></font></div></div></div>
<div style="color:#888888;margin-left:24px;margin-right:24px;"
__pbrmquotes="true" class="__pbConvBody"><div>The moment you think of
Cucumber as a programming tool rather than a mind hack you're deep into
the weeds.<br><br>Cultural transference is analogue and copying is
lossy. 'TDD/BDD: That's Not What We Meant' <br><br>Later arrivals have
mainly tertiary sources.<br><br>Early adopters at the cultural core of
BDD today push forward into new areas. Dan North with 'accelerated
agile' Liz Keogh and Chris Matts with 'Cynefin'.<br><br><br><br><br><br><br><br><br>_______________________________________________<br>Chat
mailing list<br><a class="moz-txt-link-abbreviated" href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>Archives:
<a class="moz-txt-link-freetext" href="http://lists.lrug.org/pipermail/chat-lrug.org">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>Manage your
subscription: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/options.cgi/chat-lrug.org">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>List
info: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br></div></div>
<div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div
style="display:table;width:100%;border-top:1px solid
#EDEEF0;padding-top:5px"> <div
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
photoaddress="tom@codon.com" photoname="Tom Stuart"
src="cid:part3.05080004.05030404@theappbusiness.com"
name="postbox-contact.jpg" height="25px" width="25px"></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
<a moz-do-not-send="true" href="mailto:tom@codon.com"
style="color:#737F92
!important;padding-right:6px;font-weight:bold;text-decoration:none
!important;">Tom Stuart</a></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;">
<font color="#9FA2A5"><span style="padding-left:6px">28 July 2014
09:30</span></font></div></div></div>
<div style="color:#888888;margin-left:24px;margin-right:24px;"
__pbrmquotes="true" class="__pbConvBody"><div><!----><br>To clarify, the
`feature`/`scenario` syntax (actually just aliases for `describe`/`it`)
is a feature of Capybara:
<a class="moz-txt-link-freetext" href="https://github.com/jnicklas/capybara/blob/304e2fb/lib/capybara/rspec/features.rb#L11-L12">https://github.com/jnicklas/capybara/blob/304e2fb/lib/capybara/rspec/features.rb#L11-L12</a><br><br>What
rspec-rails calls “feature specs” are vanilla RSpec example groups with
standard Rails spec helpers and Capybara setup included. If you don’t
want to use Capybara (or indeed Rails), there’s no reason to use feature
specs (or indeed rspec-rails) at all.<br><br>If all you want is to be
able to write `feature`/`scenario` instead of `describe`/`it`, just put
`config.alias_example_group_to :feature` and `config.alias_example_to
:scenario` in your spec_helper.<br><br>(Or use Cucumber! :D)<br><br>Cheers,<br>-Tom<br>_______________________________________________<br>Chat
mailing list<br><a class="moz-txt-link-abbreviated" href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>Archives:
<a class="moz-txt-link-freetext" href="http://lists.lrug.org/pipermail/chat-lrug.org">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>Manage your
subscription: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/options.cgi/chat-lrug.org">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>List
info: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br></div></div>
<div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div
style="display:table;width:100%;border-top:1px solid
#EDEEF0;padding-top:5px"> <div
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
photoaddress="william@theappbusiness.com" photoname="Will"
src="cid:part4.04090904.05090502@theappbusiness.com"
name="postbox-contact.jpg" height="25px" width="25px"></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
<a moz-do-not-send="true" href="mailto:william@theappbusiness.com"
style="color:#737F92
!important;padding-right:6px;font-weight:bold;text-decoration:none
!important;">Will</a></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;">
<font color="#9FA2A5"><span style="padding-left:6px">26 July 2014
15:51</span></font></div></div></div>
<div style="color:#888888;margin-left:24px;margin-right:24px;"
__pbrmquotes="true" class="__pbConvBody">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
I've had very similar
conversations with quite a lot of Ruby developers on this topic. I agree
with the sentiment that cucumber can work well, and I'd advocate the
approaches suggested.<br>
<br>
But the majority of Ruby developers, I've either interviewed or worked
with, much prefer RSpec. Of all the arguments against I've heard, these
are the typical ones (some of these already mentioned on this thread):<br>
<br>
1). cucumber is slow<br>
<br>
99% of the time what they are referring to turns out to be the
implementation of tests being slow not the framework itself<br>
<br>
2). cucumber is bloated<br>
<br>
probably a fair criticism. RSpec isn't compact either but there has been
acknowledgement of this problem from cucumber contributors
(<a moz-do-not-send="true"
href="http://blog.mattwynne.net/2012/04/26/a-vision-for-cucumber-2-0/"
class="moz-txt-link-freetext">http://blog.mattwynne.net/2012/04/26/a-vision-for-cucumber-2-0/</a>
and
<a moz-do-not-send="true"
href="https://groups.google.com/forum/#%21msg/cukes/a6KmuoWiCJE/M_s7uIgNDW0J"
class="moz-txt-link-freetext">https://groups.google.com/forum/#!msg/cukes/a6KmuoWiCJE/M_s7uIgNDW0J</a>).
It seems like something that is there to be addressed though & on
the roadmap, although it will take some time.<br>
<br>
3). product owners never end up reading or contributing to cucumber
tests, so why bother with gherkin<br>
<br>
even if this is the case, there's value in clearly specifying the key
features of any application using domain language. This way any new
developer or other team member can grasp this without knowing the code.
>From my experience, it is possible to get product owners
contributing,
even it takes a bit of work to make it easy for them. With initiatives
like <a moz-do-not-send="true" href="https://cucumber.pro/"
class="moz-txt-link-freetext">https://cucumber.pro/</a> and <a
moz-do-not-send="true" href="https://www.relishapp.com/"
class="moz-txt-link-freetext">https://www.relishapp.com/</a>, who knows
it
might get easier.<br>
<br>
The patterns for RSpec discussed improve readability, and are something
I'd go for if working on feature/request specs, but (in my opinion) it's
still not quite up there with a plain text scenario. You can also use a
DSL provided by libraries like turnip, which gives you the opportunity
to use a gherkin syntax in RSpec though.<br>
<br>
4). why have two test frameworks?<br>
<br>
if you keep your test logic in pure ruby code like people have
mentioned, you can: <br>
- share helpers across RSpec and cucumber relatively easily (if you want
to); <br>
- establish some common standards and patterns; <br>
- have test code that any ruby developer can read, in both suites. <br>
<br>
It can be useful to separate acceptance/end-to-end tests and lower-level
unit & component tests e.g. if the acceptance tests need different
setup such as background workers running, search indexes populated, etc.
Doing this for all tests might be unnecessarily slow your lower-level
test down if those are all you need to run. Depends on the codebase
& the team, I guess.<br>
<br>
You can use RSpec metadata and request types to separate these concerns
too; it's a bit more fiddly.<br>
<br>
5). regexes and step definitions are much less readable than method
calls with parameters<br>
<br>
something picked up on already, and something I can understand. But as
people have pointed out, there are patterns you can apply that make this
less of an issue. The ideas in turnip around improving this are
definitely interesting though.<br>
<br>
<br>
Aside from all these points, a couple of other relevant things I've come
across on the topic:<br>
<br>
<ul>
<li><a moz-do-not-send="true"
href="http://myronmars.to/n/dev-blog/2013/07/the-plan-for-rspec-3"
class="moz-txt-link-freetext">http://myronmars.to/n/dev-blog/2013/07/the-plan-for-rspec-3</a>
- a
blog post from a core RSpec contributor with this quote: </li>
</ul>
<br>
"RSpec originated in a time before the existence of Cucumber/Gherkin,
and one of its early goals was to express things in natural language
that a project stakeholder could understand. In those early days, an
expression like team.should have(9).players made sense for the goals of
the project. Since then, Cucumber/Gherkin have emerged as a better
alternative for stakeholder-focused tests, and RSpec is rarely used for
that purpose today."<br>
<br>
RSpec uses cucumber to produce exectuable specs for its own codebase
(<a moz-do-not-send="true" href="https://relishapp.com/rspec"
class="moz-txt-link-freetext">https://relishapp.com/rspec</a>); could be
a sign that it'll have more
focus on supporting testing at the unit & component level going
forward?<br>
<br>
<ul>
<li><a moz-do-not-send="true"
href="http://blog.mattwynne.net/2012/04/26/a-vision-for-cucumber-2-0/"
class="moz-txt-link-freetext">http://blog.mattwynne.net/2012/04/26/a-vision-for-cucumber-2-0/</a>
- a
blog post from a core cucumber contributor</li>
</ul>
<br>
This references the original developer of Turnip, saying 'Using RSpec as
the runner for Turnip hasn’t worked out so well.' Would love to know
more about why and whether this is still the case.<br>
<br>
<ul>
<li>For some reason you have to add capybara to your gemfile to use
the feature/scenario syntax in RSpec feature specs. I work on a lot of
APIs, so really don't need capybara as a dependency.</li>
</ul>
<ul>
<li>In Cucumber, I don't think the approach of adding modules to the
World object is clean way to reuse code. It makes them accessible in all
step definitions without namespacing. It does seem to be the most
documented approach though. I generally leave my ruby code in the
support folder and just access it within the step definitions using the
fully-qualified names.</li>
</ul>
<br>
Both frameworks have their pros & cons. Personally, I prefer
Cucumber over RSpec feature & request specs. as has no doubt come
across. But, the overwhelming resistance to cucumber within the
community is difficult to ignore. For now, I remain unconvinced by a lot
of the arguments against Cucumber. <br>
<br>
I should say though, both are great libraries & I'm definitely very
grateful to their contributors!<br>
<br>
<br>
<br>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><div
style="margin:0px"><font color="#444444"><b>Will Thomas<br>
</b></font></div>
</div>
<div
style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;margin:0px">
<span style="letter-spacing:0px"><font color="#444444"><br></font></span></div>
<div
style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;margin:0px"><font
color="#444444"><span style="letter-spacing:0px">The App Business</span><br>
</font></div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><div
style="font-size:medium;word-wrap:break-word"><div
style="word-wrap:break-word"><div style="word-wrap:break-word"><div
style="word-wrap:break-word">
<div style="word-wrap:break-word"><div style="word-wrap:break-word"><div
style="word-wrap:break-word"><div style="margin:0px"><div
style="font-size:12px;margin:0px"><div style="margin:0px"><div
style="margin:0px"><div style="margin:0px">
<div style="margin:0px"><div style="margin:0px"><div style="margin:0px"><div
style="margin:0px"><span style="letter-spacing:0px"><font
color="#444444"><span style="display: inline; font-size: inherit;
padding: 0pt; color: rgb(68,
68, 68);" class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;
text-decoration: underline; color: rgb(68, 68, 68);"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date">20-24</span></span></span></span>
Broadwick Street</font></span></div><div style="margin:0px"><span
style="letter-spacing:0px"><font color="#444444">London W1F <span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date">8HT</span></span></span></span></font></span></div>
<div style="margin:0px"><span style="letter-spacing:0px"><a
moz-do-not-send="true" style="color:rgb(34,34,34)" value="+442036579785"><font
color="#444444"><span style="display: inline; font-size: inherit;
padding: 0pt;" class="__postbox-detected-content
__postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date">+44</span></span></span></span>
203 657 9785</font></a></span></div><div style="margin:0px"><a
moz-do-not-send="true" target="_blank"
href="http://www.theappbusiness.com/"><font color="#ff4400">www.theappbusiness.com</font></a></div>
<div style="margin:0px"><span style="letter-spacing:0px"><font
color="#444444"><br></font></span></div><div style="margin:0px"><a
moz-do-not-send="true" target="_blank"
href="http://www.theappbusiness.com/careers/"><font color="#ff4400">Join
the team: we're now 75+ strong and growing fast</font></a></div>
</div><div><div style="margin:0px"><div style="margin:0px"><a
moz-do-not-send="true" target="_blank"
href="http://www.thedrum.com/digital-census/2013"><font color="#ff4400">The
Drum Census 2013: ranked UK No.1 with <span style="display: inline;
font-size: inherit; padding: 0pt;" class="__postbox-detected-content
__postbox-detected-date"
__postbox-detected-content="__postbox-detected-date"><span
style="display: inline; font-size: inherit; padding: 0pt;"
class="__postbox-detected-content __postbox-detected-date"
__postbox-detected-content="__postbox-detected-date">1-50</span></span>
staff</font></a></div></div>
</div><div><font color="#444444"><br></font></div><div><font
color="#444444">Check out our latest thinking in our </font><a
moz-do-not-send="true" target="_blank"
href="http://www.theappbusiness.com/journal/"><font color="#ff4400">journal</font></a><font
color="#444444"> and follow us
on: </font></div>
<div style="margin:0px"><div style="margin:0px"><a
moz-do-not-send="true" target="_blank"
href="http://twitter.com/theappbusiness"><font color="#ff4400">Twitter</font></a><font
color="#444444"> • </font><a moz-do-not-send="true" target="_blank"
href="http://www.linkedin.com/company/the-app-business"><font
color="#ff4400">LinkedIn</font></a><font color="#444444"> • </font><a
moz-do-not-send="true" target="_blank"
href="http://www.google.com/+TheappbusinessTAB"><font color="#ff4400">Google+</font></a><font
color="#444444"> • </font><a moz-do-not-send="true" target="_blank"
href="http://dribbble.com/theappbusiness"><font color="#ff4400">Dribbble</font></a><font
color="#444444"> • </font><a moz-do-not-send="true" target="_blank"
href="http://instagram.com/theappbusiness"><font color="#ff4400">Instagram</font></a><font
color="#444444"> • </font><a moz-do-not-send="true" target="_blank"
href="http://www.facebook.com/theappbusiness"><font color="#ff4400">Facebook</font></a></div>
</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><font
color="#444444" size="1"><br></font></div><div
style="word-wrap:break-word"><font color="#444444" size="1"><br></font></div>
<div style="word-wrap:break-word"><font color="#444444" size="1">The App
Business Limited is a company registered in England and Wales</font></div><div
style="word-wrap:break-word"><font color="#444444" size="1">Registered
number: 01897720</font></div></div>
<br>
<br>
<br>
</div>
<div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div
style="display:table;width:100%;border-top:1px solid
#EDEEF0;padding-top:5px"> <div
style="display:table-cell;vertical-align:middle;padding-right:6px;"><img
photoaddress="pbattley@gmail.com" photoname="Paul Battley"
src="cid:part5.00020705.06040501@theappbusiness.com"
name="postbox-contact.jpg" height="25px" width="25px"></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
<a moz-do-not-send="true" href="mailto:pbattley@gmail.com"
style="color:#737F92
!important;padding-right:6px;font-weight:bold;text-decoration:none
!important;">Paul Battley</a></div> <div
style="display:table-cell;white-space:nowrap;vertical-align:middle;">
<font color="#9FA2A5"><span style="padding-left:6px">26 July 2014
14:17</span></font></div></div></div>
<div style="color:#888888;margin-left:24px;margin-right:24px;"
__pbrmquotes="true" class="__pbConvBody"><div><!----><br>Brilliant!
Somehow I never realised that. Despite having a version of<br>vim-cucumber
*that actually supports jumping*, I was absolutely sure<br>that it
wasn't possible. And absolutely wrong.<br><br>Paul.<br>_______________________________________________<br>Chat
mailing list<br><a class="moz-txt-link-abbreviated" href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>Archives:
<a class="moz-txt-link-freetext" href="http://lists.lrug.org/pipermail/chat-lrug.org">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>Manage your
subscription: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/options.cgi/chat-lrug.org">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>List
info: <a class="moz-txt-link-freetext" href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br></div></div>
</blockquote>
<br>
<div class="moz-signature"><br>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><div
style="margin:0px"><font color="#444444"><b>Will Thomas<br>
</b></font></div><div style="margin:0px"><span
style="letter-spacing:0px"><font color="#444444">Senior Engineer<br>
</font></span></div>
</div>
<div
style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;margin:0px">
<span style="letter-spacing:0px"><font color="#444444"><br></font></span></div>
<div
style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;margin:0px"><font
color="#444444"><span style="letter-spacing:0px">The App Business</span><br>
</font></div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px"><div
style="font-size:medium;word-wrap:break-word"><div
style="word-wrap:break-word"><div style="word-wrap:break-word"><div
style="word-wrap:break-word">
<div style="word-wrap:break-word"><div style="word-wrap:break-word"><div
style="word-wrap:break-word"><div style="margin:0px"><div
style="font-size:12px;margin:0px"><div style="margin:0px"><div
style="margin:0px"><div style="margin:0px">
<div style="margin:0px"><div style="margin:0px"><div style="margin:0px"><div
style="margin:0px"><span style="letter-spacing:0px"><font
color="#444444"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt; color: rgb(68,
68, 68);"><span __postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;
text-decoration: underline; color: rgb(68, 68, 68);"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">20-24</span></span></span></span>
Broadwick Street</font></span></div><div style="margin:0px"><span
style="letter-spacing:0px"><font color="#444444">London W1F <span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">8HT</span></span></span></span></font></span></div>
<div style="margin:0px"><span style="letter-spacing:0px"><a
value="+442036579785" style="color:rgb(34,34,34)"><font color="#444444"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">+44</span></span></span></span>
203 657 9785</font></a></span></div><div style="margin:0px"><a
href="http://www.theappbusiness.com/" target="_blank"><font
color="#ff4400">www.theappbusiness.com</font></a></div>
<div style="margin:0px"><span style="letter-spacing:0px"><font
color="#444444"><br></font></span></div><div style="margin:0px"><a
href="http://www.theappbusiness.com/careers/" target="_blank"><font
color="#ff4400">Join the team: we're now 75+ strong and growing fast</font></a></div>
</div><div><div style="margin:0px"><div style="margin:0px"><a
href="http://www.thedrum.com/digital-census/2013" target="_blank"><font
color="#ff4400">The Drum Census 2013: ranked UK No.1 with <span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">1-50</span></span>
staff</font></a></div></div>
</div><div><font color="#444444"><br></font></div><div><font
color="#444444">Check out our latest thinking in our </font><a
href="http://www.theappbusiness.com/journal/" target="_blank"><font
color="#ff4400">journal</font></a><font color="#444444"> and follow us
on: </font></div>
<div style="margin:0px"><div style="margin:0px"><a
href="http://twitter.com/theappbusiness" target="_blank"><font
color="#ff4400">Twitter</font></a><font color="#444444"> • </font><a
href="http://www.linkedin.com/company/the-app-business" target="_blank"><font
color="#ff4400">LinkedIn</font></a><font color="#444444"> • </font><a
href="http://www.google.com/+TheappbusinessTAB" target="_blank"><font
color="#ff4400">Google+</font></a><font color="#444444"> • </font><a
href="http://dribbble.com/theappbusiness" target="_blank"><font
color="#ff4400">Dribbble</font></a><font color="#444444"> • </font><a
href="http://instagram.com/theappbusiness" target="_blank"><font
color="#ff4400">Instagram</font></a><font color="#444444"> • </font><a
href="http://www.facebook.com/theappbusiness" target="_blank"><font
color="#ff4400">Facebook</font></a></div>
</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><font
color="#444444" size="1"><br></font></div><div
style="word-wrap:break-word"><font color="#444444" size="1"><br></font></div>
<div style="word-wrap:break-word"><font color="#444444" size="1">The App
Business Limited is a company registered in England and Wales</font></div><div
style="word-wrap:break-word"><font color="#444444" size="1">Registered
number: 01897720</font></div>
<div style="word-wrap:break-word"><font color="#444444" size="1">Office
location: <span __postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">20-24</span></span></span></span>
Broadwick Street, London, United Kingdom, W1F <span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;"><span
__postbox-detected-content="__postbox-detected-date"
class="__postbox-detected-content __postbox-detected-date"
style="display: inline; font-size: inherit; padding: 0pt;">8HT</span></span></span></span></font></div></div>
</div>
</body></html>