51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1401|回复: 2
打印 上一主题 下一主题

javaEE 单元测试报错!求慧眼!

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:47
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2021-11-16 10:30:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    折磨了我一天一夜,人彻底傻了!
    这是单元测试报错的

    代码如下

    这是配置文件

    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.         
    复制代码


    附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 1803 天

    连续签到: 2 天

    [LV.Master]测试大本营

    2#
    发表于 2021-11-17 10:28:03 | 只看该作者
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    10 小时前
  • 签到天数: 1518 天

    连续签到: 2 天

    [LV.Master]测试大本营

    3#
    发表于 2021-11-17 10:38:46 | 只看该作者
    报错内容是什么
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 20:37 , Processed in 0.060880 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表