<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>愚人呓语 &#187; as3-signals</title>
	<atom:link href="http://eidiot.net/tag/as3-signals/feed/" rel="self" type="application/rss+xml" />
	<link>http://eidiot.net</link>
	<description>eidiot&#039;s blog. My flapdoodles.</description>
	<lastBuildDate>Fri, 16 Dec 2011 15:53:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>一小段 signals 测试代码</title>
		<link>http://eidiot.net/2011/05/10/a-small-piece-of-signals-test-code/</link>
		<comments>http://eidiot.net/2011/05/10/a-small-piece-of-signals-test-code/#comments</comments>
		<pubDate>Tue, 10 May 2011 07:15:03 +0000</pubDate>
		<dc:creator>eidiot</dc:creator>
				<category><![CDATA[学海沉舟 · [技术]]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3-signals]]></category>

		<guid isPermaLink="false">http://eidiot.net/?p=568</guid>
		<description><![CDATA[在自己的项目里进一步完善了 signals, 目前已全面替代了自定义事件并整合进 Robotlegs，写起代码来更舒服了。 assertEquals&#40;575, instance.getCount&#40;&#34;foo&#34;&#41;&#41;; handleSignal&#40;this, instance.countChanged, function&#40;signal:ValueChangedSignal&#41;:void &#123; assertEquals&#40;&#34;foo&#34;, signal.key&#41;; assertEquals&#40;500, signal.value&#41;; assertEquals&#40;575, signal.old&#41;; assertEquals&#40;500, signal.target.getCount&#40;&#34;foo&#34;&#41;&#41;; &#125;&#41;; instance.setCount&#40;&#34;foo&#34;, 500&#41;;]]></description>
			<content:encoded><![CDATA[<p>在自己的项目里进一步完善了 signals, 目前已全面替代了自定义事件并整合进 Robotlegs，写起代码来更舒服了。</p>

<div class="wp_codebox"><table><tr id="p5682"><td class="code" id="p568code2"><pre class="actionscript" style="font-family:monospace;">assertEquals<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">575</span>, instance.<span style="color: #0066CC;">getCount</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;foo&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; 
handleSignal<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, instance.<span style="color: #006600;">countChanged</span>, <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>signal:ValueChangedSignal<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
  assertEquals<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;foo&quot;</span>, signal.<span style="color: #0066CC;">key</span><span style="color: #66cc66;">&#41;</span>; 
  assertEquals<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">500</span>, signal.<span style="color: #006600;">value</span><span style="color: #66cc66;">&#41;</span>; 
  assertEquals<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">575</span>, signal.<span style="color: #006600;">old</span><span style="color: #66cc66;">&#41;</span>;
  assertEquals<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">500</span>, signal.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">getCount</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;foo&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; 
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>; 
instance.<span style="color: #006600;">setCount</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;foo&quot;</span>, <span style="color: #cc66cc;">500</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://eidiot.net/2011/05/10/a-small-piece-of-signals-test-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用FlexUnit4对as3-signals进行异步测试</title>
		<link>http://eidiot.net/2010/05/21/async-test-for-as3-signals-with-flexunit4/</link>
		<comments>http://eidiot.net/2010/05/21/async-test-for-as3-signals-with-flexunit4/#comments</comments>
		<pubDate>Fri, 21 May 2010 03:46:27 +0000</pubDate>
		<dc:creator>eidiot</dc:creator>
				<category><![CDATA[敝帚不珍 · [作品]]]></category>
		<category><![CDATA[as3-signals]]></category>
		<category><![CDATA[flexunit]]></category>

		<guid isPermaLink="false">http://eidiot.net/?p=551</guid>
		<description><![CDATA[Read in English: Async test for as3-signals with FlexUnit4 使用 Robert Penner 的 as3-signals 可以帮助我们节省代码量并写出更整洁的代码. 这是一个由几个代理方法组成的使用 FlexUnit4进行测试的扩展 proceedOnSignal handleSignal failOnSignal registerFailureSignal proceedOnSignal 使用这个方法确认一个signal必须被抛出。 &#91;Test&#40;async&#41;&#93; public function test_proceedOnSignal&#40;&#41;:void &#123; var model:IModel = new SomeModel&#40;&#41;; proceedOnSignal&#40;this, model.changedSignal&#41;; model.doSomethingChange&#40;&#41;; &#125; handleSignal 使用这个方法确认一个signal被抛出并且在handler方法里进行更多的断言。这个handler方法必须接收两个参数，第一个是SignalAsyncEvent，可以从这个事件的 args 属性里拿到 signal 的 dispatch 方法里传出的所有参数。第二个参数是一个Object，传进的是 handleSignal 方法的 passThroughData 参数。 &#91;Test&#40;async&#41;&#93; public function change_user&#40;&#41;:void &#123; var [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eidiot.net/en/2010/05/21/async-test-for-as3-signals-with-flexunit4/" class="liinternal">Read in English: Async test for as3-signals with FlexUnit4</a></p>
<p>使用 <a href="http://robertpenner.com/" target="_blank" class="liexternal">Robert Penner</a> 的 <a href="http://github.com/robertpenner/as3-signals" target="_blank" class="liexternal">as3-signals</a> 可以帮助我们节省代码量并写出更整洁的代码. 这是一个由几个代理方法组成的使用 <a href="http://flexunit.org/" target="_blank" class="liexternal">FlexUnit4</a>进行测试的<a href="http://github.com/eidiot/as3-signals-utilities-async" target="_blank" class="liexternal">扩展</a></p>
<ul>
<li>proceedOnSignal</li>
<li>handleSignal</li>
<li>failOnSignal</li>
<li>registerFailureSignal</li>
</ul>
<h4>proceedOnSignal</h4>
<p>使用这个方法确认一个signal必须被抛出。</p>

<div class="wp_codebox"><table><tr id="p5517"><td class="code" id="p551code7"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Test<span style="color: #66cc66;">&#40;</span>async<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> test_proceedOnSignal<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> model:IModel = <span style="color: #000000; font-weight: bold;">new</span> SomeModel<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    proceedOnSignal<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, model.<span style="color: #006600;">changedSignal</span><span style="color: #66cc66;">&#41;</span>;
    model.<span style="color: #006600;">doSomethingChange</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p><span id="more-551"></span></p>
<h4>handleSignal</h4>
<p>使用这个方法确认一个signal被抛出并且在handler方法里进行更多的断言。这个handler方法必须接收两个参数，第一个是<em>SignalAsyncEvent</em>，可以从这个事件的 args 属性里拿到 signal 的 dispatch 方法里传出的所有参数。第二个参数是一个Object，传进的是 <em>handleSignal</em> 方法的 <em>passThroughData</em> 参数。</p>

<div class="wp_codebox"><table><tr id="p5518"><td class="code" id="p551code8"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Test<span style="color: #66cc66;">&#40;</span>async<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span> 
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> change_user<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> model:IModel = <span style="color: #000000; font-weight: bold;">new</span> SomeModel<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    handleSignal<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, model.<span style="color: #006600;">changedSignal</span>, verify_user, <span style="color: #cc66cc;">500</span>, <span style="color: #66cc66;">&#123;</span><span style="color: #ff0000;">&quot;name&quot;</span>:<span style="color: #ff0000;">&quot;Tom&quot;</span>, <span style="color: #ff0000;">&quot;age&quot;</span>:<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
    model.<span style="color: #006600;">changeUser</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Tom&quot;</span>, <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> verify_user<span style="color: #66cc66;">&#40;</span>event:SignalAsyncEvent, <span style="color: #0066CC;">data</span>:<span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
    assertEquals<span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">args</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0066CC;">data</span>.<span style="color: #0066CC;">name</span><span style="color: #66cc66;">&#41;</span>;
    assertEquals<span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">args</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #0066CC;">data</span>.<span style="color: #006600;">age</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>
<h4>failOnSignal</h4>
<p>使用这个方法来确认一个signal <strong>不</strong> 被抛出。</p>

<div class="wp_codebox"><table><tr id="p5519"><td class="code" id="p551code9"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Test<span style="color: #66cc66;">&#40;</span>async<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span> 
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> not_changed<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> model:IModel = <span style="color: #000000; font-weight: bold;">new</span> SomeModel<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    failOnSignal<span style="color: #66cc66;">&#40;</span>model.<span style="color: #006600;">changedSignal</span><span style="color: #66cc66;">&#41;</span>;
    model.<span style="color: #006600;">doSomethingNotChange</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>
<h4>registerFailureSignal</h4>
<p>使用这个方法在一个signal被抛出的时候使测试失败。假设你正在等待一个service的success signal，当这个service的error signal 抛出的时候你将希望这个测试直接失败，而不是等待超时。</p>

<div class="wp_codebox"><table><tr id="p55110"><td class="code" id="p551code10"><pre class="actionscript" style="font-family:monospace;"><span style="color: #66cc66;">&#91;</span>Test<span style="color: #66cc66;">&#40;</span>async<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span> 
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> call_service<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> 
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> service:IService = <span style="color: #000000; font-weight: bold;">new</span> SomeService<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    registerFailureSignal<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, service.<span style="color: #006600;">failedSignal</span><span style="color: #66cc66;">&#41;</span>;
    proceedOnSignal<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, service.<span style="color: #006600;">successSignal</span><span style="color: #66cc66;">&#41;</span>;
    service.<span style="color: #0066CC;">call</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>
<h4>更多</h4>
<ul>
<li><a href="http://github.com/eidiot/as3-signals-utilities-async/downloads" target="_blank" class="liexternal">下载这个扩展库</a></li>
<li><a href="http://docs.flexunit.org/asdocs/org/flexunit/async/Async.html" target="" class="liexternal">FlexUnit4中异步测试的更多内容</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://eidiot.net/2010/05/21/async-test-for-as3-signals-with-flexunit4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3-signals 的 FlexUnit4 扩展</title>
		<link>http://eidiot.net/2010/01/06/unit-test-utility-for-as3-signals/</link>
		<comments>http://eidiot.net/2010/01/06/unit-test-utility-for-as3-signals/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 13:29:06 +0000</pubDate>
		<dc:creator>eidiot</dc:creator>
				<category><![CDATA[学海沉舟 · [技术]]]></category>
		<category><![CDATA[as3-signals]]></category>
		<category><![CDATA[flexunit]]></category>
		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://eidiot.net/?p=538</guid>
		<description><![CDATA[Read in English: FlexUnit 4 Utility of as3-signals 为 as3-signals 写了一个 FlexUnit 4 的扩展。 例子: Async.proceedOnEvent&#40;this, new SignalAsync&#40;instance.someSignal&#41;, SignalAsyncEvent.CALLED&#41;; instance.doSomeThingShouldDispatchSomeSignal&#40;&#41;;]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://eidiot.net/en/2010/02/21/as3-signals-utility-for-flexunit-4/" class="liinternal">Read in English: FlexUnit 4 Utility of as3-signals</a>
</p>
<p>
为 <a href="http://github.com/robertpenner/as3-signals" target="_blank" class="liexternal">as3-signals</a> 写了一个 <a href="http://github.com/eidiot/as3-signals-utilities-async" target="_blank" class="liexternal">FlexUnit 4 的扩展</a>。
</p>
<p>
例子:</p>

<div class="wp_codebox"><table><tr id="p53812"><td class="code" id="p538code12"><pre class="actionscript" style="font-family:monospace;">Async.<span style="color: #006600;">proceedOnEvent</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>, <span style="color: #000000; font-weight: bold;">new</span> SignalAsync<span style="color: #66cc66;">&#40;</span>instance.<span style="color: #006600;">someSignal</span><span style="color: #66cc66;">&#41;</span>, SignalAsyncEvent.<span style="color: #006600;">CALLED</span><span style="color: #66cc66;">&#41;</span>;
instance.<span style="color: #006600;">doSomeThingShouldDispatchSomeSignal</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eidiot.net/2010/01/06/unit-test-utility-for-as3-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

