java中cucumber的单元测试异常场景
我遵循BDD方法并使用cucumber执行单元测试 我的课程如下所示java中cucumber的单元测试异常场景,java,junit,cucumber,Java,Junit,Cucumber,我遵循BDD方法并使用cucumber执行单元测试 我的课程如下所示 public class EmployeeServiceImpl { private static Log log = LogFactory.getlog(EmployeeServiceImpl.class); @Autowired private EmployeeDao employeeDao; public void saveEmployee(Employee emp) throws Exception {
public class EmployeeServiceImpl {
private static Log log = LogFactory.getlog(EmployeeServiceImpl.class);
@Autowired
private EmployeeDao employeeDao;
public void saveEmployee(Employee emp) throws Exception {
try {
employeeDao.saveemployee(emp);
} catch (Exception ex) {
log.error("Error occured "+ex);
}
}
}
有谁能帮我写一下上面代码片段的异常场景吗 我将使用的算法如下:
@Test
public void verify_logging() throws Exception {
Log log = mock(Log.class);
Employee emp = new Employee();
saveEmployee(emp);
verify(log, times(1)).error("Error occured");
}
private Log log;
private Employee emp;
@Given("prepare employee")
public void given() {
Log log = mock(Log.class);
Employee emp = new Employee();
}
@When("save employee")
public void when() throws Exception {
saveEmployee(emp);
}
@Then("exception should be logged")
public void then() {
verify(log, times(1)).error("Error occured");
}
- 准备参数emp,使其抛出预期错误
- 调用该方法
- 验证是否发生了与日志的交互
@Test
public void verify_logging() throws Exception {
Log log = mock(Log.class);
Employee emp = new Employee();
saveEmployee(emp);
verify(log, times(1)).error("Error occured");
}
private Log log;
private Employee emp;
@Given("prepare employee")
public void given() {
Log log = mock(Log.class);
Employee emp = new Employee();
}
@When("save employee")
public void when() throws Exception {
saveEmployee(emp);
}
@Then("exception should be logged")
public void then() {
verify(log, times(1)).error("Error occured");
}
通过以下三个步骤将其转换为Cucumber:
@Test
public void verify_logging() throws Exception {
Log log = mock(Log.class);
Employee emp = new Employee();
saveEmployee(emp);
verify(log, times(1)).error("Error occured");
}
private Log log;
private Employee emp;
@Given("prepare employee")
public void given() {
Log log = mock(Log.class);
Employee emp = new Employee();
}
@When("save employee")
public void when() throws Exception {
saveEmployee(emp);
}
@Then("exception should be logged")
public void then() {
verify(log, times(1)).error("Error occured");
}
您的任务是为步骤方法以及更好的步骤提供更好的名称。验证(..)来自何处?这就是使用Mockito检查交互的方式。这种转换真的带来了好处吗?