【发布时间】:2017-09-13 05:12:33
【问题描述】:
我有一个字符串从 .c 文件传递到 java 程序。函数如下所示:
JNIEXPORT jstring JNICALL Java_MyJNI_getName(JNIEnv *env, jobject thisObj) {
return (*env)->NewStringUTF(env, "Name");
}
但是,在我的单元测试中,它说“名称”不是返回的内容。
/**
* test to see if name is retrieved properly
*/
@Test
public void getNameTest1(){
MyJNI m = new MyJNI();
assertSame(m.getName(), "Name");
}
这个测试给出了这个错误信息:
java.lang.AssertionError: expected same: <Name> was not:<Name>
所以我不明白有什么区别。我猜这与空字符或换行符有关,但我无法弄清楚。
【问题讨论】:
-
检查从文件中读取的名称。你必须“弄清楚”;这就是调试器的用途。
-
读取的文件不是单元测试的必要部分,我不小心添加了它。一个诚实的错误,但删除该行后错误仍然存在
-
Berti,你是这个网站的新手,但是当有人回答你的问题并且它有效时,然后点击它左边的数字来批准它。
标签: java c eclipse java-native-interface