Twa*_*gas 1 java selenium webdriver jbehave pageobjects
例如:
Scenario:
Given the pageOne page
When I get pageOneTitle
And click the first menu item
And I get the pageTwoTitle
Then pageOneTitle is not equals pageTwoTitle
Run Code Online (Sandbox Code Playgroud)
我有两个课程.每页一个.
该场景的前三个步骤在PageOneSteps中,另一个在PageTwoSteps中.这意味着,pageTitleOne保存在PageOneSteps中.验证步骤然后pageOneTitle不等于PageTwoStele中的pageTwoTitle.
如果PageOneSteps中的pageOneTitle,我如何在PageTwoSteps中等于pageOneTitle和pageTwoTitle?
这是一个非常简单的例子.但我希望它能说明我的意思.
感谢您的支持!
在执行故事时,您可以使用上下文来放置多个StepClasses所需的对象/值.这可以使用ThreadLocal实现.使用这样的上下文,您可以简单地将第二步中获得的值放入上下文中,并在第五步中再次获取它,以便进行比较.可以轻松找到如何使用ThreadLocal的示例 - 例如此处.
也许最简单的例子如下(有关更多信息,请参阅上面的链接页面).
故事:
Scenario: store and load a value
When I store the value asdf
Then the value is asdf
Run Code Online (Sandbox Code Playgroud)
类上下文:
public class Context {
private String data;
// getData(), setData(), ...
}
Run Code Online (Sandbox Code Playgroud)
MyThreadLocal类:
public class MyThreadLocal {
static final class ContextLocal extends ThreadLocal<Context> {
@Override
protected Context initialValue() {
return new Context();
}
}
private static final ThreadLocal<Context> userThreadLocal = new ContextLocal();
public static Context get() {
return userThreadLocal.get();
}
}
Run Code Online (Sandbox Code Playgroud)
步骤类:
public class SomeSteps extends Steps {
@When("I store the value $value")
public void storeValue(String value) {
MyThreadLocal.get().setData(value);
}
}
public class SomeOtherSteps extends Steps {
@Then("the value is $value")
public void checkValue(String value) {
assertEquals(value, MyThreadLocal.get().getData());
}
}
Run Code Online (Sandbox Code Playgroud)
在类Context中,您可以使用更精细的方式来存储数据,例如Map.
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |