gpt4 book ai didi

java - 错误 java.lang.AssertionError : expected: null but was: java. lang.String 是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:39 25 4
gpt4 key购买 nike

我的 Junit 4.12 测试代码中有这个奇怪的问题。该应用程序使用 Spring Framework 4.1.6 和 Hibernate 4。比较来自不同数据库的两个 bean 时出现此错误

java.lang.AssertionError: expected: null<null> but was: java.lang.String<null>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:834)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at my.test.TestClass.method(TestClass.java:105)

这是什么意思?如何解决?

我的测试类使用 SpringJUnit4ClassRunner 运行,看起来与此类似

@ContextConfiguration(
{
"classpath:beans-test.xml"
}
)
@RunWith(SpringJUnit4ClassRunner.class)
public class TestMdtTechnicalGridGeneration extends AbstractJUnit4SpringContextTests {

@Test
public void method() {
assertEquals(bean1.getThing(), bean2.getThing());
}
}

编辑:我指的bean是一个简单的POJO,你可以把它想象成下面这样:

public class Thing {
private String thing;

public void setThing(String thing) {
this.thing = thing;
}

public String getThing() {
return thing;
}
}

我让他们按照以下方式使用 Hibernate

SessionFactory mySF = (SessionFactory) applicationContext.getBean("mySessionFactory");
Query query = mySF.openSession().createQuery("FROM Thing WHERE code = '" + code + "'");
List<Thing> listThing = return query.list();
bean1 = listThing.get(0);

为了解决接近投票的问题:我不确定所有这些细节是否有帮助,问题是关于我得到的奇怪的 AssertError 而不是我如何得到 bean 。我在 SO 和 Google 中都找不到帮助。

edit2:为了进一步说明,POJO 本身是完全相同的 Java 类,我使用了两个 hibernate 映射文件。唯一的区别是映射中的 catalog="this"catalog="that"。我使用两个不同的 sessionfactories,因为数据存储在不同的模式(又名目录)中,同一个 MySQL 实例。

最佳答案

在进一步挖掘之后,我发现这些 bean 并不相同。常规 DAO 在 Thing 上设置值为 null 的 string,而测试数据 DAO 在 Thing 上设置 null。失败的断言是

@Test
public void testNull() {
assertEquals(null, "null");
}

我很高兴它失败了,值(value)观不同的。不过,详细消息非常神秘。

关于java - 错误 java.lang.AssertionError : expected: null<null> but was: java. lang.String<null> 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com