在Springboot中测试JdbcTemplete.BatchUpdate方法

时间:2018-09-29 11:30:00

标签: java spring-boot junit jdbctemplate

我正在编写一个JUnit测试,用于测试保存在ExampleRepository类中的以下方法,

@Repository
public class ExampleRepsoitory {

    @Autowired
    private JdbcTemplate jdbcTemplate;


    String sql = "Select * from Hello";

    public void save(List<Course> listOfCourses) {

        jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {

            @Override
            public void setValues(PreparedStatement arg0, int arg1) throws SQLException {

                System.out.println("In Set Values Method");
            }

            @Override
            public int getBatchSize() {

                System.out.println("In side getB");
                return 0;
            }
        });
    }

}

下面是JUnit方法

@Test
public void testSave() throws Exception {

    List<Course> listofCourses = new ArrayList<Course>();

    Course course1 = new Course("Course1", "Spring", "10 Steps", Arrays
            .asList("Learn Maven", "Import Project", "First Example",
                    "Second Example"));
    Course course2 = new Course("Course2", "Spring MVC", "10 Examples",
            Arrays.asList("Learn Maven", "Import Project", "First Example",
                    "Second Example"));

    listofCourses.add(course1);
    listofCourses.add(course2);

    int[]  returnValue = {1,2,3};

    when(batchPreparedStatementSetter.getBatchSize()).thenReturn(5);

    when(jdbcTemplate.batchUpdate(sql, batchPreparedStatementSetter)).thenReturn(returnValue);

    exampleRepo.save(listofCourses);

}

我想测试setValue()getBatchSize()方法中的代码,以便包括我的测试范围。

请帮助,我尝试了上述JUnit方法,但无法解决问题。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的覆盖问题,所以发布了一个对我有用的解决方案。

showTimePicker(
      context: context,
      initialTime: TimeOfDay.now(),
      helpText: StringElements.selectTxnTime,
      builder: (BuildContext context, Widget child) {
        return Theme(
          data: ThemeData.light().copyWith(
            colorScheme: ColorScheme.light(
              primary: Variables.cashBaseColor,
            ),
          ),
          child: child,
        );
      },
    )