是否可以使用ANT任务检查端口是否打开?
我需要执行flexunit任务,但在开始此任务之前,我需要检查另一个flexunit任务是否未运行并阻止所需的端口.
谢谢你的任何建议,
拉法尔
我最近开始实践测试驱动开发 - 到目前为止我一直在研究一个库项目,所以我在一个单独的FlexBuilder 3项目中组织了我的FlexUnit测试,链接到我的库的swc.
现在我正在开发一个Web应用程序,并想知道如何最好地组织测试.目前我将它们放在我正在测试的项目中的src/test包中,测试运行器应用程序与默认应用程序处于同一级别.这是最好的方法吗,或者我应该在我正在测试的应用程序的源代码中有一个单独的测试项目和链接?或者不同的东西?
我们目前不会自动化测试,但这是我希望在某个时候开始工作的东西,因此将来支持这种测试的结构会很有帮助.
我已经看了http://docs.flexunit.org/index.php?title=Setting_up_a_FlexUnit_4_Project,但是这(以及其他文档)很好地解释了如何组织测试,但没有建议在哪里坐下与我正在测试的项目有关的测试.
谢谢你的帮助,
欢呼,安吉
我试图回顾性地测试一个相当复杂但利用MVC的应用程序.我知道回顾性地应用单元测试并不理想,但我仍然相信通过重构现有代码是可能的.大多数情况下,不依赖于其他单元即不能对一个单元进行单元测试,即视图依赖于模型.
在这种情况下,单元测试的最佳方法是什么?使用真实模型或创建模拟模型更好吗?
在我的情况下使用真实模型的问题是该模型依赖于从XML获取数据的其他响应类,因此存在一系列依赖.这个模型有很多数据,因此使用它会容易得多,但也许我错过了这一点.
为简洁起见,我提供了一个应用程序的UML.
**编辑****
好的,如果我是正确的,最好在mock类中创建模拟数据吗?比如我有一个创建的视图类"PlaylistPanel",以无差错运行所需的数据模拟类"MockPlaylistPanelModel":
class MockPlaylistPanelModel extends Mock implements IPlaylistPanelModel
{
/**
* Return all playlist items
* @public
*/
public function get mainPlaylistItems():Vector.<PlaylistData>
{
var playData:Vector.<PlaylistData> = new Vector.<PlaylistData>;
var playlistResp:PlaylistData = new PlaylistData(0, "", "", 0, 0, 0, 0);
playData.push(playlistResp);
return playData;
}
}
Run Code Online (Sandbox Code Playgroud) 背景:
我有一个Flex Web应用程序,通过BlazeDS与Java后端进行通信.Flex客户端由一个flex-client模块和一个独立的flex-service模块组成,该模块包含视图和表示模型,这些模块包含模型(值对象)和服务对象.
我正在使用FlexUnit4为flex-service模块的RemoteObjects编写异步集成测试.在某些测试中,我修改测试数据并查询它以查看是否一切正常(此处显示的技术:http://saturnboy.com/2010/02/async-testing-with-flexunit4)
题:
在每个FlexUnit4测试方法(或测试方法链)之前,如何将数据库重置为已知状态?在我的Java服务器集成测试中,我通过DBUnit和Spring Test的事务的组合来做到这一点 - 在每个测试方法之后回滚.但是,这些Flexunit集成跨越多个请求,从而跨越多个事务.
如果没有在后端实现集成测试服务API,那么如何实现呢?当然其他人也遇到过这个问题?之前已经提出了类似的问题(集成后的回滚数据库(Selenium)测试),但没有令人满意的答案.
任何人都知道怎么做 Async.asyncHandler()
工作,如果Async.processOnEvent()
只能在[Before]方法中使用.(除了http://docs.flexunit.org/之外,任何人都知道一些有用的文件).
我定义了一个名为HelloCompo(扩展Vbox)的MXML组件,该组件定义了一个名为hello()的函数,在hello()中发生了一个名为HelloEvent的客户事件(事件类型名为"hello"),并在另一个函数中命名init()监听事件,我想测试事件是否正确调度.所以我有以下测试:
var helloCompo = new HelloCompo();
helloCompo.hello();
helloCompo.addEventListener("hello", Async.asyncHandler(this, handleHello, 1000, null, handleTimeOut));
Run Code Online (Sandbox Code Playgroud)
测试将始终执行handleTimeOut方法(意味着不调度HelloEvent,但是当helloCompo.hello()执行时,它确实发生了干扰,所以出了什么问题?)
flexunit4 ×5
apache-flex ×4
flexunit ×2
unit-testing ×2
ant ×1
database ×1
java ×1
mocking ×1
port ×1
sockets ×1