我正在使用JUnit测试一些代码。
以下部分:
assertEquals(query.get(0).get("FEEDBACK_ID"), feedbackValues.getFeedbackId());
导致以下错误:
java.lang.AssertionError: expected: java.lang.Long<1> but was: java.lang.Integer<1>
哪个好......
我的问题是,如何转换此对象:
query.get(0).get("FEEDBACK_ID")
进入整数以避免测试失败?我知道将右边的项目转换成很长的内容会更容易,但我不想这样做。
答案 0 :(得分:1)
你想要达到的目标是错误的,所以唯一有效的答案是:不要这样做。基本上,您尝试向方法添加行为以匹配您的测试。在这种情况下你在测试什么?当然不是方法。即使它发生的可能性很小,但向下转换为int
可能会导致整数溢出并导致测试失败。
测试不应该向测试方法的输出添加额外的转换,否则谁测试这些额外的转换?为什么API不会返回您想要操作的类型?
您的方法应该返回相同的类型,或者您应该将int
结果提升为long
,因为它是安全的。