簡體   English   中英

測試期間的Django WebServer

[英]Django WebServer During Testing

我正在用Django編寫一個復雜的Web應用程序。 有很多組件。 特別是兩個,分別是Django服務器(以下稱此Server )和一個C ++應用程序服務器(以下稱此Calculator ),該ServerServer提供計算。 Server希望完成計算時,它將命令發送到正在監聽Calculator的套接字。 像這樣:

{
    "command": "doCalculations"
}

現在, Calculator可能需要在不同時間提供不同的信息來完成其工作。 因此,不是將數據直接傳遞給命令中的Calaculator ,而是由Calculator詢問其需要什么。 它通過在Server上調用RESTful API來實現:

https://Server/getStuff?with=arguments

然后, Calculator將使用此調用中的數據進行計算,並使用答案答復Server

當我嘗試使用Django的unittest框架進行單元測試時,問題就開始了。 我在測試中設置了一堆數據結構,但是當Server調用Calculator ,它需要在REST API中提供此數據,以便Calculator可以獲取所需的數據。 問題在於Django測試框架不會啟動Web服務器,如果我手動執行此操作,它將從真實數據庫而不是測試用例中讀取數據。

有誰知道如何使用外部人員/流程可用的數據運行單元測試?

我希望這是有道理的...

您需要指定要加載到測試類中的燈具。

https://docs.djangoproject.com/en/1.7/topics/testing/tools/#fixture-loading

class MyTest(TestCase):
    fixtures = ['data.json']

    def setUp(self):
        # do stuff

    def tearDown(self):
        # do stuff

可以使用python manage.py dumpdata檢索data.json python manage.py dumpdata

它將以JSON格式填充來自主數據庫的數據。

data.json應該存在於您正在測試的應用程序的fixtures文件夾中。 (如有必要,創建一個)。

暫無
暫無

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

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