Rhino를 사용하여 Java 코드에 JavaScript를 포함합니다. JavaScript에서는 JUnit 3의 클래스 인 TestCase의 서브 클래스를 인스턴스화하지 못했지만 TestCase의 수퍼 클래스 인 Assert의 서브 클래스를 인스턴스화하는 데 성공합니다.
다음은 어떤이를 표시하는 코드입니다Rhino에서 JavaScript를 사용하여 TestCase의 하위 클래스를 인스턴스화 할 수없는 이유는 무엇입니까?
package com.example.test;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.mozilla.javascript.*;
public class MyFirstJavaProgram {
public static void main(String[] args) {
try {
Context cx = Context.enter();
Scriptable scope = new ImporterTopLevel(cx);
String js = new String();
js += "importPackage(Packages.com.example.test);";
js += "importClass(java.lang.System);";
js += "var testCaseClass = new TestCaseClass();";
js += "System.out.println(\"testCaseClass: \" + testCaseClass);";
js += "var assertClass = new AssertClass();";
js += "System.out.println(\"assertClass: \" + assertClass);";
cx.evaluateString(scope, js, "<cmd>", 1, null);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
class TestCaseClass extends TestCase {
public TestCaseClass() {}
}
class AssertClass extends Assert {
public AssertClass() {}
}
그리고 출력했다 :
testCaseClass: null(com.example.test.TestCaseClass)
assertClass: [email protected]
내가이 일을하고 왜 나 한테 물어하지 마십시오, 그냥 내가해야 가정 해 봅시다.
양해 해 주셔서 감사합니다.
IMHO, 이보다 Java, JavaScript와 비슷합니다. –