草庐IT

java - 如何使用 Rhino 在 Javascript 中将 Java 类中的方法添加为全局函数?

我有一个简单的Java类,它有一些方法:publicclassUtils{publicvoiddeal(Stringprice,intamount){//....}publicvoidbid(Stringprice,intamount){//....}publicvoidoffer(Stringprice,intamount){//....}}我想创建一个此类的实例并允许Javascript代码直接调用这些方法,如下所示:deal("1.3736",100000);bid("1.3735",500000);我现在唯一能想到的方法是使用ScriptEngineengine=newScri

java - Rhino:如何从 Java 调用 JS 函数

我正在使用MozillaRhino1.7r2(不是JDK版本),我想从Java调用JS函数。我的JS函数是这样的:functionabc(x,y){returnx+y}我该怎么做?编辑:(JS函数在单独的文件中) 最佳答案 Stringscript="functionabc(x,y){returnx+y;}";Contextcontext=Context.enter();try{ScriptableObjectscope=context.initStandardObjects();Scriptablethat=context.new

java - 使用 Rhino : pausing/resuming scripts 在 Java 中解释 JavaScript

我正在使用JDK的javax.script.*包。具体来说,我使用的是JavaScript引擎,据我所知,它似乎是基于Mozilla开发的JavaScript-in-Java解释器Rhino。我希望完成的是基本上让我的JavaScript能够在代码中的某个点“暂停”自己(比如,在函数调用的中途),并且只有在Java允许它这样做之后才恢复自己.为了说明我的意思,想象一下这段JavaScript代码:functionmyJSFunction(){print("Hello");mysteriousPauseFunction();//thisisthepartI'mwonderingabout

java - 如何将 Rhino-JavaScript 数组转换为 Java 数组

我有以下内容:ScriptEngineManagermgr=newScriptEngineManager();ScriptEnginejsEngine=mgr.getEngineByName("JavaScript");jsEngine.eval("functiongetArray(){return[1,2,3,4,5];};");Objectresult=jsEngine.eval("getArray();");如何将类型为sun.org.mozilla.javascript.internal.NativeArray的结果对象转换为相应的java数组?有人可以给我看一个完成此操作的工

java - 使用 ScriptManager (Rhino) 从 Java 使用 Javascript HTML5 类型数组,怎么样?

我一直在将我在客户端Javascript中开发的应用程序移植到我的服务器(用于多人游戏目的)。我正在使用ScriptEngine执行某些部分,因为我想在客户端和服务器中使用相同的代码,而不必对所有内容重新编码两次。一开始它运行良好,但后来我偶然发现了HTML5中的新类型数组的问题(Float32Array、Uint8Array...)。ScriptEngine(Rhino)不支持这些数组,出于性能原因我需要它们,因此我无法使用非类型化数组在javascript中重新实现它们。我想用Java重新实现它们并导入包,但是没有办法在Java中重新实现[]运算符,也没有扩展基本数组(AFAIK)

c# - 如何正确使用 Rhino.Mocks AssertWasCalled()?

我调用_mocks.ReplayAll(),然后调用一个或多个_mockedObject.AssertWasCalled(),然后调用_mocks.VerifyAll()。但它告诉我“当模拟对象处于记录状态时,此操作无效”。[Test]publicvoidSetStateExecuting_Should_Set_State_To_Pause_And_Not_Change_GlobalState_When_GlobalState_Is_Paused(){vartask=newTask{ID=1,TimeZone=-660,GlobalState=TaskState.Paused};_ta

c# - 无法使用 Rhino Mocks 为内部类型创建 Mock 类

我正在使用RhinoMocks作为单元测试的模拟框架。我有一个名为Subject的类,这是我要测试的类。它依赖于IStore。IStore定义如下://internalinterface:hasInternalsVisibletoboth"Subject"//and"StoreTests"classnamespacesinternalinterfaceIStore{voidStore(stringname);//othermethods}Subject类定义如下:classSubject:IStore{privateIStoreinternalStore;//constructorin

c# - Rhino Mocks - 使用 Arg.Matches

我有一个正在模拟的函数,它将参数对象作为参数。我想根据对象中的值返回结果。我无法比较这些对象,因为没有覆盖Equals。我有以下代码:_tourDal.Stub(x=>x.GetById(Arg.Matches(y=>y.TourId==2),null)).Return(newTour(){TourId=2,DepartureLocation=newIataInfo(){IataId=2},ArrivalLocation=newIataInfo(){IataId=3}});当提供的参数的TourId为2时,这应该返回指定的对象。这看起来应该可以,但是当我运行它时,出现以下异常:When

c# - 使用 Rhino Mocks 从模拟/ stub 中引发事件

如何使用RhinoMocks从模拟/stub引发事件?我在网上找到了这个问题的一些答案,但他们似乎都使用Record/Replay-syntax,但我使用的是Arrange/Act/Assert语法。有什么建议吗?一个小例子...假设我正在使用MVVM模式并拥有这个模型类:publicclassMyModel{privateint_myValue;publiceventEventHandlerValueChanged;publicvoidSetValue(intnewValue){_myValue=newValue;if(ValueChanged!=null){ValueChanged

c# - Rhino Mocks 接收参数,修改它并返回?

我想写这样的东西:myStub.Stub(_=>_.Create(Arg.It.Anything)).Callback(i=>{i.Id=100;returni;});我想获取传递给mock的实际对象,对其进行修改并返回。RhinoMocks可以实现这种情况吗? 最佳答案 您可以像这样使用WhenCalled方法:myStub.Stub(_=>_.Create(Arg.Is.Anything)).Return(null)//willbeignoredbutstilltheAPIrequiresit.WhenCalled(_=>{va