序言:我正在尝试在我的项目中遵循TDD方法,而对整个Node.js和Zombie.js都是新手。
我使用Zombie.js加载了“所有AJAX”HTML页面。该页面对我的服务器执行少量XMLHttpRequest查询,并通过带有GET参数的<script>
标签加载少量JS文件(JS文件在运行时生成)。然而,启动服务器,所有补充内容,重置所有这些的状态是非常昂贵的,并且跟踪自动生成的JS文件实现起来很复杂,所以我想基本上模拟通信服务器而没有页面注意。
我想到的一种方法是用XMLHttpRequest
替换browser.evaluate()
我自己的钩子对象,但是使用这种方式我无法控制浏览器如何处理任何其他请求,例如{{ 1}}或<script src="/foo.js?magic=quux">
。
第二种方法是通过代理重定向整个浏览器实例,并实现我自己的代理 - 这就足够了,但我不想实现完全承诺的HTTP(S)代理只用于测试目的,因为我会最终测试代理,这不会轻易结束:)
那么,是否还有其他解决方案可以让我精确控制Zombie.js告诉外部世界的是什么以及世界的答案是什么?