当前位置: 首页 > 知识库问答 >
问题:

JUnit assertEquals吐出的是数字而不是字母?

松国兴
2023-03-14

我正在运行测试的类:

public class Grader {
    public char determinaLeterGrade(int numberGrade) {
        if (numberGrade < 0) {
            throw new IllegalArgumentException("Number grade invalid");
        } else if (numberGrade < 60) {
            return 'F';
        } else if (numberGrade < 70) {
            return 'D';
        } else if (numberGrade < 80) {
            return 'C';
        } else if (numberGrade < 90) {
            return 'B';
        } else {
            return 'A';
        }
    }
}

测试课程:

import org.junit.Test;

import static org.junit.Assert.*;

public class GraderTest {
    @Test
    public void fiftyNineShouldBeF() {
      var grader = new Grader();
      assertEquals('F', grader.determinaLeterGrade(59));

    }

}

当我用一个通过的数字运行测试时,它工作正常,但是当我把它换成不同的东西时,例如69,我得到的是数值,而不是字母:

java.lang.AssertionError: 
Expected :70
Actual   :68

实际值不应该是D,而应该是F吗?我做错了什么?我正在看这个教程,在15:38,他把它们作为字母而不是数字。

共有1个答案

彭飞虎
2023-03-14

70是ASCII表中的F,68是D

 类似资料:
  • 我知道很多人问过相关的问题,但请帮我解决。我试图复制一个我在网上找到的开源温度控制实验室。我想在树莓皮上运行它。这就是我一直遇到的错误: 生成它的代码如下所示: 我相信这段代码试图通过以下代码与另一个python文件通信: 我还不知道我周围的python代码,所以一个非常清晰的“虚拟类”解决方案的解释会很有帮助。谢谢伙计们。

  • 既然我们可以在Javascript中使用关键字抛出任何东西,那么我们就不能直接抛出一个错误消息字符串吗? 有人知道这里面有什么陷阱吗? 让我对此添加一些背景:在JavaScript世界中,人们通常依赖参数检查而不是使用try-catch机制,因此只使用抛出致命错误是有意义的。不过,为了能够捕捉一些系统错误,我必须为我自己的错误使用一个不同的类,而不是创建错误的子类,我认为我应该只使用String。

  • 我想对一个浮点数进行四舍五入,得到点后的两位数。但我收到了一个错误: float()参数必须是字符串或数字,而不是“NoneType” 在评级模型的评级字段中四舍五入是一个坏主意,因为平均_评级不会四舍五入

  • 问题内容: 我想计算以下字符串中的字母,数字和特殊字符的数量: 我试过了: 但我遇到了错误。我对此尝试了各种其他变化-仍然出现错误-如: 找不到’<=’的重载,该重载接受提供的参数 问题答案: Swift 3更新: (以前的Swift版本的答案) 一个可能的Swift解决方案: 更新: 上述解决方案仅适用于ASCII字符集中的字符,即不能将Ä,é或ø识别为字母。Foundation框架使用以下替代

  • 我试图从SQL Server中的某些表中选择1000行,在某些情况下很容易,因为我确实有一个bigint键。因此,我存储我获取的密钥的最后一个号码,然后在上面加上100。见下文: 但是,当键是字母数字值时,如何做到这一点呢? 什么是等价物 如果是,例如? 谢谢你!

  • 问题内容: 我正在使用ColdFusion 8和SQL Server 2008 R2。 我试图查询一列值以获取具有范围内的值的行。该列应为数字,但不是。它被设置为varchar(由其他人)。有100,000多行数据。这是数据的伪样本: 我的查询如下所示: 该查询不会运行,因为where语句的列是varchar,并且出现转换错误,因此我必须将where语句更改为此: 现在,当我运行这样的查询时,它会