java - 期望的结果部分错误 : Jmockit/Junit

标签 java unit-testing junit mockito jmockit

我的测试部分如下:

   @Test
        //testing user report method of UserAdmin - number of users less than 10 
        public void testuserReport_SizeLessThan10() throws Exception
        {
            new Expectations() {{
                dBConnection.getUsers();
                times=1;
                result= Arrays.asList("Abc","123");
            }};

            System.out.println("in less than 10");
            userAdmin.runUserReport();
        }

被测试的方法属于名为 userAdmin 的类,如下所示:

public void runUserReport() {
        try {
            List<User> users = dbConn.getUsers();
            System.out.println(users.size());
            if (users.isEmpty()) { // empty database
                System.out.println("No users in database...");
            } else if (users.size() <= 10) { // detailed reporting
                System.out.println("Listing all usernames:");
                for (User user : users) {
                    System.out.println(user.getUsername());
                }
            } else { // summary reporting
                System.out.println("Total number of users: " + users.size());
                System.out.println(users.get(0).getUsername());
                System.out.println(users.get(1).getUsername());
                System.out.println(users.get(2).getUsername());
                System.out.println(users.get(3).getUsername());
                System.out.println(users.get(4).getUsername());
                System.out.println((users.size() - 5) + " more...");
            }
        } catch (SQLException sqle) {
            System.out.println("DBConnection problem at runUserReport().");
        }
    }

我的测试通过将用户大小指定为 2 来运行,但它不会打印方法中定义的以“列出所有用户名:”开头的用户名。我在测试的期望部分中是否错误地定义了结果?请帮忙

最佳答案

我什至不知道怎么会System.out.println(users.size());打印大小为 2 并且测试未失败。

List<User> users = dbConn.getUsers();users是用户类型列表,而 result= Arrays.asList("Abc","123");使result作为字符串列表,List<String> 。您正在分配 List<String>List<User>并且以某种方式它在运行时不会失败。

您需要准备一个用户类型列表并分配给 result而不是你现在正在做的事情。

关于java - 期望的结果部分错误 : Jmockit/Junit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995035/

相关文章:

java - 如何在 android 的 ListView 中隐藏和显示图像?

java - 如何进入无限循环直到输入有效数据?

typescript - 如何使用 jest 测试对同一函数的特定调用序列

java junit测试用例不一致

java - 尝试在 Spring Boot REST API 中下载文件时如何修复 'resource not found'?

java - 安装路径

unit-testing - 在进行单元测试时,100% 的代码覆盖率真的是一件好事吗?

unit-testing - 使用 Laravel 测试模型验证时遇到问题

java - 带有 SpringRunner.class 的 JUnit @Category 注释

Selenium 中的 java.lang.IllegalAccessError