2012-12-13 191 views
0

我刚开始学习单元测试(使用FlexUnit)。我仍然不确定如何使用它们。单元测试问题

我创建了一个新的flex项目,并创建了一个名为Car的类。然后,我为Car类创建了一个TestCase类。

这是FlexBuilder给我的默认模板,我放了一些痕迹。

package flexUnitTests 
{ 
    import flexunit.framework.Assert; 

    public class CarTest 
    {  
     [Before] 
     public function setUp():void 
     { 
      trace('before test function'); 
     } 

     [After] 
     public function tearDown():void 
     { 
      trace('after test function'); 
     } 

     [BeforeClass] 
     public static function setUpBeforeClass():void 
     { 
      trace('before test class'); 
     } 

     [AfterClass] 
     public static function tearDownAfterClass():void 
     { 
      trace('after test class'); 
     } 

     [Test] 
     public function testCar():void 
     { 
      trace('the test function'); 

      var c:Car = new Car("gol"); 

      Assert.assertTrue("Is car name valid:", c.name != "gol"); 
     } 
    } 
} 

我不明白为什么我有很多方法在测试函数之前或之后运行。为什么不只是一个简单的funcion内使用它们,如:

 [Test] 
     public function testCar():void 
     { 
      trace('before test class'); 
      trace('before test function'); 

      trace('the test function'); 

      var c:Car = new Car("gol"); 

      Assert.assertTrue("Is car name valid:", c.name != "gol"); 

      trace('after test function'); 
      trace('after test class'); 
     } 

第二个问题,我想补充的是,这些测试individualy测试每个类(如图示instancianting Car类时),或者我可以测试我的整个通过实例化主类来应用一次?问题是如何模拟整个应用程序的用户流(用户点击这里,向服务器发送请求等等)。我应该在测试方法中逐个写出整个流程? :O

回答

1

我不明白为什么我有很多方法在测试函数之前或之后运行。

你不要来实现所有这些方法。 FB为你生成了所有这些存根,但你不妨将它们留下。

也就是说,你可以在一个测试类中有多个测试函数。你通常测试一个班级的每个公共职能。您甚至可以针对每个函数使用不同的角落案例参数进行多项测试。
例如在您的例子中,你只测试构造函数,但你可能有一个测试:

  • car.turnLeft(32)(度)
  • 或看的时候car.turnLeft(0)
  • car.turnLeft(190)(你得到的地形会发生什么的car.turnRight这里)
  • car.turnLeft(-12)(负turnLeft?)

前/后置方法可以用来写一些鳕鱼你希望在课堂中的每个测试之前/之后执行,这样你就不必在每个测试函数中重复这个过程。

这些试验测试每个类individualy

它是一个单元测试是吗?

我可以通过实例化主类来测试我的整个应用程序吗?

这不是单元测试的目的:它们只测试类。还有其他类型的测试工具测试(部分)应用:

  • 行为测试工具:在你写的情况下的包含一个典型的执行顺序,并断言这种序列的结果是正确的。我相信Cucumber可以用这种方式测试Flex应用程序(但并不完全确定)
  • UI测试工具:您可以在其中记录场景的用户在您的应用程序中单击。然后可以播放这些场景以测试应用程序是否按预期继续运行。 FlexMonkey就是Flex应用程序的一种解决方案,但似乎业主已经改变了产品的发展方向。
+0

哦,非常有启发! – Fabricio