[英]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方法來編寫要在類中的每個測試之前/之后執行的某些代碼,這樣您就不必在每個測試函數中都重復此操作。
這些測試分別測試每個班級
是單元測試嗎?
我可以通過實例化主類來測試整個應用程序一次嗎?
這不是單元測試的目的:它們僅測試類。 還有其他類型的測試工具可以測試應用程序(的一部分):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.