2017-02-28 108 views
-3

我被賦予了作業:什麼是測試腳本?

考慮一個單個數字的列表。例如,[2,2,5]。 考慮這些列表的後繼者。

  • [2,2,5]的繼任者是[2,2,6]
  • [2,3,9,9]的後繼者是[2,4,0,0]
  • [9,9,9,9]的後繼者是[1,0,0,0,0]

編寫一個Java程序,將這樣一個數字列表作爲輸入,並返回其後繼者。您不能將此列表表示爲小數點 數字並計算其後繼數字,因爲該數字可能非常大以至於發生了 溢出。儘可能縮短你的程序。

用Java提交代碼以及編譯指令和測試腳本。

我編寫了程序並編譯併成功運行。該程序完全符合作業的要求。但是,我不確定測試腳本是什麼意思。請有人解釋並提供一個例子,它是什麼?

注意:如果您決定倒推問題,請提供一個理由以便我可以編輯我的問題。

+1

可能要求進行單元測試。 HTTP://計算器。com/questions/8751553/how-to-write-a-unit-test基本上,用示例輸入創建一個測試,並聲明輸出與您承諾的完全相同。 – Compass

+3

爲什麼不問你的老師他們的意思? – resueman

+0

已經通過電子郵件發送給他,但他沒有回覆。 –

回答

2

查找Junit。教授希望您創建一個測試特定場景的測試課程。類似這樣的:

@Test 
public void testSuccesor() { 
    int[] start = {2,2,5}; 
    int[] expected = {2,2,6}; 

    int[] actual = callSuccesorMethod(start); 

    assertArrayEquals(expected, actual); 
} 

如果期望值與實際值不符,測試將會失敗。單元測試是驗證代碼的好方法。它還有助於未來的發展,當您更改代碼時,您可以重新運行測試來驗證您沒有破壞任何東西。

退房TDD以及它可能會讓您感興趣的編程風格。

+0

謝謝。這是我需要的。 –

+0

我喜歡你的答案,我喜歡測試,所以我upvoted,但我認爲這個腳本等於junit是純粹的猜測在你身邊:-) – GhostCat

+0

@KaneBilliot GhostCat帶來了一個很好的觀點,請與你的教授覈對Junit是否很好開始分配任務。 –

0

的測試腳本是鍛鍊你的代碼的程序(「被測系統」之稱的或簡稱爲「SUT」)以可預測的方式,並驗證其行爲是對於給定輸入正確的。測試可能與SUT使用相同的語言,但使用不同的語言是很常見的,因爲您對性能,修改方便性,可讀性和健壯性有不同的要求。

例如,一個簡單的shell腳本可能足以在你的情況:

#!/bin/bash 
set -e # important, so the script fails if any single command fails 

test '2,2,6' = $(./successor '2,2,5') 
test '2,4,0,0' = $(./successor '2,3,9,9') 
# Add any more tests you think you should have 

如果你的彙編指令在一個Makefile的形式呈現,你可以從那裏運行測試了。調用目標test是一個常見的約定,因此make test將編譯您的程序並運行其測試。