2015-09-06 16 views
0

我有三個相互依存的python functions:F()中,g(),和h(),如:的Python - 單元測試功能依賴於前面的函數的結果(連鎖功能)

  • g()取決於對f()的結果。
  • h()取決於g()的結果。
def f(): 
    ... 

def g(): 
    f() 
    ... 

def h(): 
    g() 
    ... 

unit test這些功能我使用py.test。在路上我試圖單元測試,我觀察了一些冗餘:

def test_f(): 
    assert f() 

def test_g(): 
    f() 
    assert g() 

def test_h(): 
    g() 
    assert h() 

我應該如何設計Unit Tests,在這種特殊情況下?

+1

這聽起來更像集成測試比單元測試。如果你想,你應該看看模擬庫http://www.voidspace.org.uk/python/mock/compare.html#mock-chained-methods –

回答

1

我不知道如果我理解正確的,你的,但如果我這樣做,那麼你可以做

def test_functions(): 
    assert f() 
    assert g() 
    assert h() 
+0

謝謝。我剛接觸'單元測試'。把所有的測試都放在'相同的函數裏面嗎?實際上,你所做的就是應該做什麼,但是我對所有單元測試在同一個測試函數中的聚合有懷疑(即使「第一次測試」失敗了,也不需要執行第二和第三個')。 – h4k1m

+1

如果這些函數真的依賴於其他函數 - 在沒有f()的情況下調用g()沒有任何意義,那麼我誠實地認爲可以將它們放在同一個測試中,畢竟它不會是僅僅因爲這些功能中的一種功能而看到它們全部失效 – DorElias