gpt4 book ai didi

java - junit AssertionFailedError 与内存地址

转载 作者:行者123 更新时间:2023-12-01 16:48:59 25 4
gpt4 key购买 nike

我是单元测试新手。我正在测试一个“标记” String 的函数。 String是一个数学表达式。这是我的代码:

@Test
public void testTokenizer() throws InvalidExpressionException {

final String QUERY = "sin(x) / 5*x";
final String[] EXPECTED = {"x", "sin", "5", "x", "*", "/"};
parser.parse(QUERY);
final String[] actual = parser.getTokens().toArray(new String[parser.getTokens().size()]);

Assertions.assertEquals(EXPECTED, actual);
}

这是我得到的错误:

org.opentest4j.AssertionFailedError: 
Expected :[Ljava.lang.String;@62043840
Actual :[Ljava.lang.String;@5315b42e

我使用的是junit5。看起来这些是内存地址(我是初学者)。 我是否做出了错误的断言(比较指针或其他东西)?

最佳答案

使用Assert.assertArrayEquals进行数组比较,您正在比较对象的ID

import org.junit.Assert;

@Test
public void testTokenizer() throws InvalidExpressionException {

final String QUERY = "sin(x) / 5*x";
final String[] EXPECTED = {"x", "sin", "5", "x", "*", "/"};
parser.parse(QUERY);
final String[] actual = parser.getTokens().toArray(new String[parser.getTokens().size()]);

Assert.assertArrayEquals( EXPECTED, actual );
}

关于java - junit AssertionFailedError 与内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468159/

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