Flash持续集成自动化单元测试
发布时间:2020-12-15 18:41:27 所属栏目:百科 来源:网络整理
导读:Flash持续集成自动化单元测试 发布日期:2012年2月06日 作者:Leon 类别:Flash ? | ? 评论(6) 本文关注于宏观上的CI和单元测试技术,某些技术上的具体细节会略过,更多细节请参考最后部分的“参考资料”及文中的链接。 作者:杜明坦 本文包括:持续集成、单
Flash持续集成自动化单元测试发布日期:2012年2月06日
类别:Flash?|?评论(6)
持续集成(CI)
hudson及搭建安装JDK
安装ANT
安装Hudson
简明使用方法添加节点并进行设置添加job并进行设置集成flexunit/pmd/cpd自动化编译设置
<taskdef?resource="flexTasks.tasks"?classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"?/>
单元测试所需文件设置"flexUnitTasks.tasks">
<classpath> ? <fileset?dir="${lib.loc}"> ? <include?name="flexUnitTasks*.jar"?/> ? </fileset</classpath</taskdef>" PMD/CPD条件编译参数的方法<define<name>CONFIG::debug
</name<value>false
</value</define>CONFIG::embed
>CONFIG::edit
>true
>
构建windows下默认端口1024被占用问题单元测试flexunit4进化史框架原理图使用方法
基础知识testMethod,testCase,testSuitetestMethod
?
[Test
]
? public ? function ?testUpload ( ) { } ;
TestCase
[Before
[Before
?
Class
[After
[After
?
]
(order
=1
function
?testOrder1
;
=2 function ?testOrder2 ; TestSuite[Suite
[RunWith
(
"org.flexunit.runners.Suite"
class
?MultiFileUploaderSuite
{
? ? ? var ?_testUploadList :TestUploadList ? } 断言
assert
(
?
"错误提示"
,
?预期值, 实际值
?
)
;
result
?
=
?1
?
+
?
2
assertEqual
"结果不为3"
;
hamcrest
assertThat
(
?value
;
(
?num1
is
(
?between
(
?num2
)
?
;
import
?org.
hamcrest.
TypeSafeMatcher
Description
class
?myMatcher exends TypeSafeMatcher
function
?myMatcher
override
?
function
?matchesSafely
(
item
:Object
:Boolean
?
function
?describeTo
(description
:Description
:
void
?
}
异步测试(async
=5000
function
?testCancel
void
{
?? ? ? ? ? ? ? ? ? ? ?
?
? ? ? var ?mHandler : Function ? = ?Async. asyncHandler ( ? this ? ? ? 5000 {num : 4 : "m" ? ? ? _uploader. addEventListener ( ?UploaderEvent. EVENT_FILE_ALL_MEMEORY ? ? ?mHandler ? ; ?? ? ? ? ? ? ? ? ? ? loadtoMemory ; ?? ? }
(
?async
?
function
?shouldCompleteTimerSequence
? ? ? ?
var
?timer
:Timer
?
=
?
new
?Timer
(
?TIMEOUT
?
? ? ? ?
?
var
?sequence
:SequenceRunner
?
new
?SequenceRunner
this
?
? ? ? ? sequence.
addStep
(
?
new
?SequenceCaller
(
?timer
start
?
new
?SequenceWaiter
TIMER
stop
?
addAssertHandler
(
?handleSequenceComplete
null
?
run
}
Rules
-BeforeClasses
? ? -Rules ? ? -Befores ? ? ? ? -Test ? ? -Afters ? ? -Rules (the same ones as above) -AfterClasses UIImpersonatorRunner和自定义Runner
flexunit.
runner.
IDescription
IRunner
notification.
IRunNotifier
token.
IAsyncTestToken
class
?CustomRunner implements IRunner
?
function
?CustomRunner
}
function ?run (notifier :IRunNotifier ? ? ? ? previousToken :IAsyncTestToken function ?get description :IDescription ? function ?pleaseStop } UIListenerimport
?sampleSuite.
SampleSuite
listeners.
UIListener
FlexUnitCore
private
?
var
?core
:FlexUnitCore
function
?runMe
? ? core
?
new
?FlexUnitCore
? ? core.
addListener
new
?UIListener
(
?sampleSuite.
SampleSuite
?
CIListener
core.
(
new
?CIListener
core.
}
Mockolate原理使用"mockolate.runner.MockolateRunner"
class
?TestUploader
{
?? ?
? ? ? ? ? ? ? ? ? ? ? [Rule var ?mocks :MockolateRule ? new ?MockolateRule [Mock (type = "strict" var ?fileReference :FileReference var ?fileReferenceList :FileReferenceList } var
?frl
:FileReferenceList
?
=
?strict
(
?FileReferenceList
?
;
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
mock ( ?frl ? ). getter "fileList" returns ( ? [ ] ? method "toString" "FileReferenceList" ? "browse" ? args ( ?Array ? dispatches new ?Event ( ?Event. SELECT false false ? _uploader. fileReferenceList ? = ?frl ; Case选择策略
示例展示
testUploadedToMemory
)
testUploadedALLComplete testUploadedALLError testCancel testResume testDelete )
/**
?* 取消上传,上传完成2个后,cancel,验证以上传的ID列表的值是否为2 *? */ ?? ? ? ? =4 ? ? _count ? = ? 0 ? ? mockFileReference ? ? mockAMFPHP true ? ; ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? timeoutHandler ? addFileType "test" ? browse } ?* mock reference相关的类?
?*? ?*/ ?? ? ? ? function ?mockFileReference { ?? ? ? ? ? ? ; ?? ? ? ? ? ? ? ? ? ? ? ? var ?num :int ? var ?arr :Array ? = ? ] ? ? ? for var ?i :int ; ?i ? < ; ?num ; ?i ++ ? var ?fr :FileReference ? ( ?FileReference ? ; ?? ? ? ? ? ? ? ? ? ? ? ? ? ? mock ( ?fr ? ( ? " ;data ; ? ( ?_ba ? ;type ;. jpg ;size ( ?10000 ? ;name ;fr ;toString ;FileReference ; ?? ? ? ? ? ? ? ? ( ;load ; ) ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?. COMPLETE ? ? ? ? ? ?. new ?IOErrorEvent ( ?IOErrorEvent. IO_ERROR ? ? ? ? arr. push ? ? ? } ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mock ;fileList ( ?arr ? ;FileReferenceList ;browse ? ? ? ? . } ? * 上传过程中中断处理
? * ? ? * @param e ? * @param pd ? *? ? */ ?? ? ? ? function ?cancelHandler (e :UploaderEvent var ?sHandler Function switch ( ?pd. type ? ? ? ? ? ? case ? "m" : ?? ? ? ? ? ? ? ? ? ? ? sHandler ? "a" ; ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? _uploader. EVENT_FILE_COMPLETE upload ? ? ? ? ? ? ? break "a" : ?? ? ? ? ? ? ? ? ? if ++_count ? == ?2 ? ? ? ? ? ? ? ? ? _uploader. cancel ? ? ? ? ? ? ? Assert. assertEquals "cancel失效:" uploadedIDAll. length ? ? ? ? ? ? ? ? } ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ?? ? ? ? ? ? } 参考资料
这篇文章有6个评论 ? ? ? 文章出处:http://www.baiduux.com/blog/2012/02/06/flash-ci-and-testing/?tn=gongxinjun.com (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |