51Testing软件测试论坛

标题: javaEE 单元测试报错!求慧眼! [打印本页]

作者: 测试积点老人    时间: 2021-11-16 10:30
标题: javaEE 单元测试报错!求慧眼!
折磨了我一天一夜,人彻底傻了!
这是单元测试报错的
[attach]135313[/attach]

代码如下

这是配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans
  5.         http://www.springframework.org/schema/beans/spring-beans.xsd">
  6.     <!-- 1 配置数据源-->
  7.     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  8.         <!-- 数据库驱动-->
  9.         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  10.         <!-- 连接数据库的url-->
  11.         <property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
  12.         <!-- 连接数据库的用户名-->
  13.         <property name="username" value="root"></property>
  14.         <!-- 连接数据库的密码-->
  15.         <property name="password" value="123456"></property>
  16.     </bean>
  17.     <!-- 2 配置JDBC模板-->
  18.     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  19.         <!-- 默认必须使用数据源 -->
  20.         <property name="dataSource" ref="dataSource" />
  21.     </bean>
  22.    
  23.     <!-- 定义id为accountDao的Bean -->
  24.     <bean id="accountDao" class="com.itheima.jdbc.AccountDaoImpl">
  25.         <!-- 将jdbcTemplate注入到accountDao实例中 -->
  26.         <property name="jdbcTemplate" ref="jdbcTemplate" />
  27.     </bean>   
  28. </beans>
复制代码

这是Account.java


  1. ```java
  2. package com.itheima.jdbc;
  3. public class Account {
  4.     private Integer id;           //账户id
  5.     private String username;      //用户名
  6.     private Double balance;       //账户余额
  7.     public Integer getId() {
  8.         return id;
  9.     }
  10.     public void setId(Integer id) {
  11.         this.id = id;
  12.     }
  13.     public String getUsername() {
  14.         return username;
  15.     }
  16.     public void setUsername(String username) {
  17.         this.username = username;
  18.     }
  19.     public Double getBalance() {
  20.         return balance;
  21.     }
  22.     public void setBalance(Double balance) {
  23.         this.balance = balance;
  24.     }
  25.     public String toString() {
  26.         return "Account [id=" + id + ", "
  27.                 + "username=" + username +
  28.                 ", balance=" + balance + "]";
  29.     }
  30.    
  31. }
复制代码

  1. 这是AccountDao.java
复制代码
  1. package com.itheima.jdbc;
  2. import java.util.List;
  3. public interface AccountDao {
  4.     //添加
  5.     public int addAccount(Account account);
  6.     //更新
  7.     public int updateAccount(Account account);
  8.     //删除
  9.     public int deleteAccount(int id);
  10.     //通过id查询
  11.     public Account findAccountById(int id);
  12.     //查询所有账户
  13.     public List<Account> findAllAccount();

  14. }
复制代码

这是AccountDaoImpl.java



  1. ```java
  2. package com.itheima.jdbc;
  3. import java.util.List;
  4. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.jdbc.core.RowMapper;
  7. public class AccountDaoImpl implements AccountDao {
  8.     //声明jdbcTemplate属性及其setter方法
  9.     private JdbcTemplate jdbcTemplate;
  10.     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  11.         this.jdbcTemplate = jdbcTemplate;
  12.     }
  13.     // 添加账户
  14.         public int addAccount(Account account) {
  15.             // 定义SQL
  16.             String sql = "insert into account(username,balance) values(?,?)";
  17.             // 定义数组来存放SQL语句中的参数
  18.             Object[] obj = new Object[] {
  19.                                account.getUsername(),
  20.                                account.getBalance()
  21.              };
  22.             // 执行添加操作,返回的是受SQL语句影响的记录条数
  23.             int num = this.jdbcTemplate.update(sql, obj);
  24.             return num;
  25.         }
  26.         // 更新账户
  27.         public int updateAccount(Account account) {
  28.             // 定义SQL
  29.             String sql = "update account set username=?,balance=? where id = ?";
  30.             // 定义数组来存放SQL语句中的参数
  31.             Object[] params = new Object[] {
  32.                                    account.getUsername(),
  33.                                    account.getBalance(),
  34.                                    account.getId()
  35.               };
  36.             // 执行添加操作,返回的是受SQL语句影响的记录条数
  37.             int num = this.jdbcTemplate.update(sql, params);
  38.             return num;
  39.         }
  40.     //删除账户
  41.     public int deleteAccount(int id) {
  42.         // 定义SQL
  43.         String sql="delete  from account where id=  ? ";
  44.         //执行删除操作,返回的是受SQL语句影响的记录条数
  45.         int num=this.jdbcTemplate.update(sql, id);
  46.         return num;
  47.     }
  48.     //通过id查询账户信息
  49.     public Account findAccountById(int id) {
  50.         //定义sql语句
  51.         String sql="select * from account where id =?";
  52.         //创建一个新的BeanPropertyRowMapper对象
  53.         RowMapper<Account> rowMapper=
  54.                 new BeanPropertyRowMapper<Account>(Account.class);
  55.         //将id绑到SQL语句中,并通过RowMapper返回一个Object类型的单行记录
  56.         return this.jdbcTemplate.queryForObject(sql, rowMapper, id);
  57.     }
  58.     //查询所有账户信息
  59.     public List<Account> findAllAccount(){
  60.         //定义SQL语句
  61.         String sql="select * from account";
  62.         //创建一个新的BeanPropertyRowMapper对象
  63.         RowMapper<Account> rowMapper=
  64.                 new BeanPropertyRowMapper<Account>(Account.class);
  65.         //执行静态的SQL查询,并通过RowMapper返回结果
  66.         return this.jdbcTemplate.query(sql, rowMapper);
  67.     }
  68. }
复制代码

接下来的是三个一运行就报错的单元测试!

  1. @Test
  2.         public void addAccountTest() {
  3.         //加载配置文件
  4.         ApplicationContext applicationContext=
  5.                 new ClassPathXmlApplicationContext("applicationContext.xml");
  6.         //获取AccountDao实例
  7.          AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
  8.         //创建Account对象,并向Account对象中添加数据
  9.          Account account=new Account();
  10.          account.setUsername("tom");
  11.          account.setBalance(1000.00);
  12.          //执行addAccount()方法,并获取返回结果
  13.          int num=accountDao.addAccount(account);
  14.          if(num>0) {
  15.              System.out.println("成功插入了"+ num + "条数据!");
  16.          }else {
  17.             System.out.println("插入操作执行失败!");
  18.         }
  19.         }
  20.         
  21.         @Test
  22.         public void updateAccountTest() {
  23.         //加载配置文件
  24.         ApplicationContext applicationContext=
  25.                 new ClassPathXmlApplicationContext("applicationContext.xml");
  26.         //获取AccountDao实例
  27.          AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
  28.         //创建Account对象,并向Account对象中添加数据
  29.          Account account=new Account();
  30.          account.setId(1);
  31.          account.setUsername("tom");
  32.          account.setBalance(2000.00);
  33.          //执行updateAccount()方法,并获取返回结果
  34.          int num=accountDao.addAccount(account);
  35.          if(num>0) {
  36.              System.out.println("成功修改了"+num + "条数据!");
  37.          }else {
  38.             System.out.println("修改操作执行失败!");
  39.         }
  40.         }

  41. @Test
  42.         public void findAccountByIdTest() {
  43.         //加载配置文件
  44.         ApplicationContext applicationContext=
  45.                 new ClassPathXmlApplicationContext("applicationContext.xml");
  46.         //获取AccountDao实例
  47.          AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
  48.          
  49.          //执行findAccountById()方法,并获取返回结果
  50.          Account account = accountDao.findAccountById(1);
  51.          System.out.println(account);
  52.         }
  53.         
复制代码



作者: 海海豚    时间: 2021-11-17 10:28
https://blog.csdn.net/jitianyu123/article/details/74352587  看下这个
作者: qqq911    时间: 2021-11-17 10:38
报错内容是什么




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2