Arjan van Bentem created JBEHAVE-748:
----------------------------------------
Summary: When @Named parameter matches name in Example table, it
might be injected for steps that do not reference it
Key: JBEHAVE-748
URL: https://jira.codehaus.org/browse/JBEHAVE-748
Project: JBehave
Issue Type: Bug
Components: Core
Affects Versions: 3.5.4
Environment: Windows 7, Java 6
Reporter: Arjan van Bentem
When a step with @Named parameters is used in a scenario that uses an Example
table for SOME of its steps, but for this specific step is given some explicit
value, then IF the parameter name is not fully surrounded with whitespace AND
it matches a name from the Examples table, then the given value is ignored.
Instead, the value from the Examples table is injected.
If the parameter name is unrelated to anything in the Examples table, then all
is fine, even when the parameter is not fully surrounded with whitespace.
(This is slightly related to http://jira.codehaus.org/browse/JBEHAVE-646)
For example, all fine:
{code}
@Given("I have <a> and <b>")
public void givenAAndB(@Named("a") String myA, @Named("b") String myB) {
assertThat(myA).isEqualTo("this");
assertThat(myB).isEqualTo("that");
}
@When("I do <a>")
public void whenIDoA(@Named("a") String myA) {
assertThat(myA).isEqualTo("this");
}
@Then("I see <b>")
public void thenISeeB(@Named("b") String myB) {
assertThat(myB).isEqualTo("that");
}
// $x not surrounded by all whitespace, but "x" NOT known in Examples table:
all fine
@When("I did '$x'")
public void whenIDidX(@Named("x") String myX) {
assertThat(myX).isEqualTo("foo");
}
{code}
...but wrong:
{code}
// $b not surrounded by all whitespace, and "b" also known in Examples table
@Then("I saw '$b'")
public void thenISawB(@Named("b") String myB) {
// Will fail: is assigned "that" from Examples table instead
assertThat(myB).isEqualTo("bar");
}
{code}
...when used with:
{code}
Given I have <a> and <b>
When I did 'foo'
And I do <a>
Then I see <b>
And I saw 'bar'
Examples:
| a| b|
|this|that|
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email