Flex Unità 4 - Ciao Mondo
-
09-10-2019 - |
Domanda
Voglio usare il Flex unità 4 suite.
io in realtà non ha alcuna esperienza con test di unità.
Ho scaricato il chiavi in ??mano progetto, ma ero un po 'sopraffatta.
Io fondamentalmente voglio solo iniziare con la creazione di un semplice test di unità ciao mondo.
se ho una classe chiamata MyClass
con 2 metodi square()
e cube()
.
e voglio creare uno unit test in questo modo:
public class MyTest
{
public function testMyClass():void
{
var myClass:MyClass = new MyClass();
assert(myClass.square(7) == 49);
assert(myClass.cube(7) == 343);
assert(myClass.square(5) == 50); // should fail
}
}
Come posso ottenere questo al lavoro?
Soluzione
Aggiungi una nuova applicazione per il vostro progetto Flex - il nome con il suffisso 'UnitTest.mxml'. Aggiungere un riferimento a TestRunnerBase, e creationComplete avviare il TestRunnerBase. Questo dovrebbe iniziare:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:flexunit="flexunit.flexui.*" creationComplete="init();"><mx:Script>
<![CDATA[
import flexunit.framework.TestSuite;
import FlexUnit.*;
private function init():void{
test.test = initSuite();
test.startTest();
}
private function initSuite():TestSuite{
var suite:TestSuite = new TestSuite();
suite.addTestSuite(testMyClass);
return suite;
}
]]>
</mx:Script>
<flexunit:TestRunnerBase id="test" width="100%" height="100%" />
</mx:Application>
Altri suggerimenti
Quindi, il problema è che i test non sono ancora in esecuzione? Ad un certo punto, da qualche parte, si dovrebbe vedere la visualizzazione dei risultati del test, sia che passano o falliscono.
Io personalmente uso AsUnit. Quando ero in un Flex proiettare l'altro giorno - che era la prima volta che avessi mai usato AsUnit in un proj Flex - quando ho premuto il pulsante di compilazione, mi è stato chiesto se volevo iniziare la mia applicazione o se volevo avviare il test runner AsUnit invece.
Quindi sì, i test devono essere invocato manualmente in qualche modo, come adamcodes suggerite.