51Testing软件测试论坛
标题:
Cucumber Java新手上路(3)- JUnit断言
[打印本页]
作者:
随尘
时间:
2016-2-19 20:28
标题:
Cucumber Java新手上路(3)- JUnit断言
一个简单的求和场景设计OK了,那我们试一下对这个内容进行断言,验证我们的代码错误时的现象
比如我们讲sum.java中的sum()方法中的a+b修改成a*b
@Test
@When("^Calculation of two numbers sum$")
public void sum() throws Throwable {
c = a*b;
}
重新编译,并运行工程
得到如下结果:
[attach]100082[/attach]
说明断言时抛错了,并提示了相应的错误位置,就是sum.java中的断言位置
接下来在写一个登陆的“场景”:
在java_test.feature文件中追加如下内容:
Scenario: test user login a web page
Given user input username abcdefg
And input password higklmn
When click login button
Then login is success
[attach]100083[/attach]
在implementation中新建user.java文件,模拟数据库存储内容:
package implementation;
public class user{
private String username = "abcdefg";
private String password = "higklmn";
public void setUsername(String name){
username = name;
}
public String getUsername(){
return username;
}
public void setPassword(String word){
password = word;
}
public String getPassword(){
return password;
}
}
在step_definitions文件夹中新增login.java文件:
package step_definitions;
import cucumber.api.java.zh_cn.*;
import cucumber.api.*;
import cucumber.api.java.en.*;
import static org.junit.Assert.*;
import org.junit.*;
import implementation.*;
public class login{
user u = new user();
String t_username;
String t_password;
boolean isSuccess = false;
@Test
@Given("^user input username (.*)$")
public void number(String username) throws Throwable {
t_username = username;
}
@Test
@And("^input password (.*)$")
public void other(String password) throws Throwable{
t_password = password;
}
@Test
@When("^click login button$")
public void sum() throws Throwable {
if(t_username.equals(u.getUsername())){
if(t_password.equals(u.getPassword())){
isSuccess = true;
}
}
}
@Test
@Then("^login is success$")
public void result() throws Throwable {
assertTrue("username or password is error",isSuccess);
}
}
保存后编译并运行,这里偷个懒,写了个批处理 run.bat:
javac -cp "./jars/*;." step_definitions\*.java implementation\*.java
java -cp "./jars/*;." cucumber.api.cli.Main -g step_definitions features
pause
运行结果:
[attach]100084[/attach]
都运行正确了,如果是输入错误呢,比如我们将java_test.feature文件中输入的密码修改成aaaa1111
再次运行结果:
[attach]100085[/attach]
ok,又报错了,我突然留意到在求和计算和登陆错误这两个场景报错的视乎,有这么一个东西:
[attach]100086[/attach]
好吧,猜也能才出来,这个是提示你在feature文件中,那些步骤执行成功了,那些步骤执行失败了,可能这个没有ruby搭建的cucumber框架界面交互好看,不过谁让咱不懂ruby呢
作者:
shirleyxyli
时间:
2016-8-22 18:35
请问楼主,run.bat是写些什么内容呢
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2