2017-08-01 68 views
1

我想将硒测试转换成小黄瓜。是否有方法来实现如果在小黄瓜的声明?如何实施'如果'在小黄瓜

例如:假设代码是用下面的格式写的。因为我不能粘贴实际的代码,所以我只写下如下描述。请理解之后的部分双斜线是实际的硒代码

// launch the application 
// login to application 
// navigate to page 
String str; 
if(str== "XYZ") 
{ 
    // verify title 
} 
//verify text field 1 
//verify test field 2 
//verify select box 

对于这个我想在小黄瓜编写代码如下

Given user launches the application 
When user login with valid credentials 
and navigate to required page 
When String str is "XYZ" 
Then verify title 
And verify text field 1 
And verify test field 2 
And verify select box 

但是这个代码不正确,因为如果STR不等于到“XYZ”,我们希望不应该验证该标题,但应验证文本字段1,2和选择框等其他验证。

任何人都可以帮忙吗?

+0

可能的答案在这里https://stackoverflow.com/questions/30233391/does-if-else-concept-available-in-feature-file-gherkin-language –

+0

嗨@DanielFintinariu,我经历了链接,但我需要如果可能的话,在两种测试场景中将场景拆分出来的方法/解决方案 –

+0

根据场景,您可以使用“给定时间 - 步骤”。 – Aby

回答

1

你可以写情景,有点像这样:

Given the user launches the application 
When user login with valid credentials 
And navigates to required page 
Then he should see the page datails 

里面的Then一步,可以管理所有的逻辑。

Then(/^he should see the page datails$/) do 
    if condition 
    ... 
    else 
    ... 
    end 
end 
-2

严格地说,你应该沿着线建立一个替代声明:

Given user launches the application When user login with valid credentials and navigate to required page When String str is NOT "XYZ"

+0

这种方式?? 鉴于用户启动应用程序 当具有有效凭据 用户登录和浏览到所需的 页。当字符串str是“XYZ” 然后验证标题 并验证文本字段1 和验证测试场2 并验证选择框 当字符串str不是“XYZ” 验证文本字段1 并验证测试字段2 并验证选择框 –

+0

这不是小黄瓜,你只是用代码硬编码小黄瓜语法,并将它称为外部方法 –

1

理想的情况下,这种详细程度不会在你的小黄瓜场景。最好的方法是描述业务用例,而不是低级别的细节。这就是Gherkin设计的目的:与非技术方面的利益相关方进行沟通,以便您可以制定出您是否正在构建正确的事情。以下是我会写:

Given the user is logged in 
And the user is on the required page 
When they enter data that requires the optional fields to be validated 
And they enter invalid data in the optional fields 
Then the form shows an error on the optional fields 

低级别的细节并不重要(该字符串是专门“XYZ”或者说,它是title场并不重要),所以这些应该被隐藏在步骤定义和/或单元测试。

为了继续检查其他领域,你可以在此之后只需要添加一个步骤:

When they enter invalid data in all of the other fields 
Then each other field has an error message attached to it. 

同样,也没有必要指定实际的领域,或将它们放在各自的步骤。这个想法是为了表达场景的高层次业务价值,即表单应该在何时被验证。

保持高水平的好处是,当表单发生变化时(因为它最终可能会发生变化),那么这种情况可以保持不变。这是正确的,因为业务案例是相同的:它应该验证它应该是什么时候。所有更改将在步骤定义中进行。这意味着没有理由与您的利益相关者进行另一次讨论,以确定您的方案是否仍在测试正确的事情。

1

小黄瓜是不是一种编程语言使用ifelse条件。它是BDD框架的一部分,它的实施可以让利益相关方和其他非技术资源了解测试过程的内容。因此,总是建议,尽可能保持小黄瓜尽可能简单和通用。

4

如果在小黄瓜中,则不实施。

小黄瓜是关于沟通和那些你想要沟通,非编码员,不知道什么是if语句。他们也不在乎。

解决方案?两种情况可以涵盖这两种情况。