Junit 失败 - 字符串中的引号比较

Its*_*has 6 java junit4

我正在尝试assertEquals使用JUnit 4, Java 8, 来比较 2 个字符串来检查解密函数,所以:

String data = "veryLongEncryptedString.....";
String value = DecUtils.decryptToken(data, null); //returns String
assertEquals("Here User name: ", "encrypt expected value", value);
Run Code Online (Sandbox Code Playgroud)

这些值相等,但控制台显示引用其中之一:

org.junit.ComparisonFailure: Here is test for Addition Result:  expected:<[xxx]> but was:<["xxx"]>
Run Code Online (Sandbox Code Playgroud)

如何使这两个值都带引号或不带引号?谢谢。

Bob*_*sen 3

如何使这两个值都带引号或不带引号?

测试的想法assertEquals是将精确的期望值与方法的输出进行比较。在这里,提供了一个已经包含左引号和右引号的DecUtils.decryptToken字符串。所以你有两个选择:

  • 这些引号应作为返回值的一部分,因此您应该将测试字符串更改为正确的预期值: String data = "\"veryLongEncryptedString.....\"";

  • 这些引号不应作为返回值的一部分:测试失败是因为它应该失败,并且您必须修复decryptToken 例程,以便它返回正确的结果。

执行哪一项取决于 的文档DecUtils.decryptToken,但请注意,您应该只执行一项!