Python測試驅動編寫

2021-07-10 13:03:13 字數 1746 閱讀 3027

通過gr_modtool會自動生成測試驅動程式的模板,只需要修改模板即可,模板如下:

from gnuradio import gr, gr_unittest

from gnuradio import blocks

import double_diff_swig as double_diff

class qa_translate (gr_unittest.testcase):

def setup (self):

self.tb = gr.top_block ()

def teardown (self):

self.tb = none

def test_001_t (self):

# set up fg

self.tb.run ()

# check data

if __name__ == '__main__':

gr_unittest.run(qa_translate, "qa_translate.xml")

這裡module的名稱為double_diff,block的名稱為translate。

我們需要做的就是補充test_001_t()函式:構建流圖、給出測試資料以及預期結果、執行流圖、將實際結果與預期結果i進行比較。修改好的程式如下:

from gnuradio import gr, gr_unittest

from gnuradio import blocks

import double_diff

class qa_translate (gr_unittest.testcase):

def setup (self):

self.tb = gr.top_block ()

def teardown (self):

self.tb = none

def test_001_t (self):

src_data=[1,-1,-1,1,1,-1]

expected_ampl=(1,1,1,1,1,1)

expected_phase=(0,1,1,0,0,1)

src=blocks.vector_source_c(src_data)

op=double_diff.translate()

dst0=blocks.vector_sink_f()

dst1=blocks.vector_sink_f()

self.tb.connect(src,op)

self.tb.connect((op,0),dst0)

self.tb.connect((op,1),dst1)

# set up fg

self.tb.run ()

# check data

result_ampl=dst0.data()

result_phase=dst1.data()

self.assertequal(expected_ampl,result_ampl)

self.assertequal(expected_phase,result_phase)

if __name__ == '__main__':

gr_unittest.run(qa_translate, "qa_translate.xml")

執行結果:

5 裝置驅動Makefile編寫及編寫測試驅動

市面上的關於裝置驅動的書大部分是三星的開發板 都是啥210,2440啥的舊晶元 全志和瑞芯微的好像沒看到有,還有有關ti晶元的中文書籍關於驅動方面講的也很淺,不適於入門。博文是在關於三桑的開發板上的基礎上開始編寫的,因筆者 我 水平問題,錯漏在所難免 參考資料改的makefile mkdir roo...

怎麼編寫測試驅動程式

開發測試驅動程式一般分為4步 1,指出需要的新特性。可以記錄下來,然後為其編寫乙個測試 2,編寫特性的概要 這樣程式就可以執行而沒有任何語法等方面的錯誤,但是測試會失敗。看到測試失敗是很重要的,這樣就能確定測試可以失敗。如果測試 中出現了錯誤,那麼就有可能出現任何情況,測試都會成功,這樣等於沒測試任...

python測試驅動

最近在看python測試驅動開發這本書。複習到了很多關於django以及python的知識。先說下我配置的環境django 2.10 python 3.61 pycharm 因為這本書我看的時候用的是django1.11所以版本差異非常大。在第三章urls配置中 書中用的是url配置 而django...