簡體   English   中英

單元測試問題

[英]Unit Testing questions

我剛剛開始學習單元測試(使用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");
        }
    }
}

我不明白為什么在測試功能之前或之后有這么多方法要運行。 為什么不在簡單的功能中使用它們,例如:

        [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');
        }

我要補充的第二個問題是,這些測試分別測試每個類(例如,當實例化Car類時顯示),或者我可以通過實例化主類來一次測試整個應用程序? 問題是如何模擬應用程序的整個用戶流(用戶單擊此處,向那里的服務器發送請求,等等,等等)。 我應該在測試方法中逐一編寫整個流程嗎? :O

我不明白為什么在測試功能之前或之后有這么多方法要運行。

不必實現所有這些方法。 FB為您生成了所有這些存根,但您最好也將它們省略。

也就是說,一個測試類中可以有多個測試函數。 您通常會測試一個類的每個公共功能。 您甚至可能對每個函數使用不同的套頭條件參數進行多個測試。
例如,在您的示例中,您僅測試了構造函數,但是您可能需要進行以下測試:

  • car.turnLeft(32) (以度為單位)
  • 或查看car.turnLeft(0)時會發生什么
  • car.turnLeft(190) (您正在進入car.turnRight的地形)
  • car.turnLeft(-12) (負turnLeft?)

可以使用before / after方法來編寫要在類中的每個測試之前/之后執行的某些代碼,這樣您就不必在每個測試函數中都重復此操作。

這些測試分別測試每個班級

單元測試嗎?

我可以通過實例化主類來測試整個應用程序一次嗎?

這不是單元測試的目的:它們僅測試類。 還有其他類型的測試工具可以測試應用程序(的一部分):

  • 行為測試工具:在其中編寫包含典型執行序列的方案,並斷言此類序列的結果正確。 我相信Cucumber可以通過這種方式測試Flex應用程序(但不能完全確定)
  • UI測試工具:在其中記錄用戶在應用程序中單擊的場景。 然后可以回放這些場景,以測試應用程序是否按預期運行。 FlexMonkey就是Flex應用程序的此類解決方案之一,但似乎所有者已經改變了產品的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM