我正在寻找一个可靠的ActionScript模拟框架。我一直在使用mock-as3,但我对我觉得触发事件的黑客解决方案感到恼火。还有其他一些其他原因,我想有一些选择,但不确定我是否一定需要进入它们。我也研究过Mock4AS,但界面看起来很麻烦。任何发现都将不胜感激,谢谢。
答案 0 :(得分:6)
asmock是一个动态模拟框架,支持触发事件作为对被调用方法的响应。尽管仍然有“beta”monikor,它已被用于多个生产应用程序(包括在持续集成服务器内)。
您可以将它用于您的目的:
var mock : ISometInterface = ISometInterface(mockFactory.createStrict(ISometInterface));
SetupResult.forEventDispatcher(mock); // stubs the IEventDispatcher methods
SetupResult.forCall(mock.someMethod())
.dispatchEvent(new Event()); // dispatch an event when someMethod is called
mockFactory.replayAll();
mock.someMethod(); // will dispatch the event
如果您在使用asmock时遇到任何问题(或者想要特别做某事),请通过sourceforge向我发送邮件或提出错误请求。
基于我为asmock所做的动态字节码生成的新项目已经弹出,名为mockito(来自java框架的一个端口)。
答案 1 :(得分:0)
不,实际上没有任何这样的东西(我知道)...在我看来,模拟as3是你能得到的最好的......有一个open issue on adobe jira,希望是有一天,这将解决许多问题......实现适当的嘲弄只是一个优势......
格尔茨
back2dos
答案 2 :(得分:-1)
我很想知道为什么你认为Mock4AS界面很麻烦。也许我们可以改进它。通常你只需要使用一些调用:mock()在你的模拟中。你的测试中的expected(),也许是withArgs()或withArg()。然后是assertTrue(mock.success());
我们提供了一些额外的功能,如willReturn()和willThrow()。
此外,我即将推送更改,以便您还可以设置deepCompare()来比较对象/数组内容,而不仅仅是通过引用进行比较。
对于调度事件,我创建了一个MockEventDispatcher。我只是让它调度我想要的事件:mock.dispatchEvent(someEvent);
任何反馈都将不胜感激。
感谢。
-jP