2016-12-18 16 views
0

我有我認爲是一個相當常見的情況:我想通過FitNesse測試一個Web服務,同時也能夠從Web服務後面的數據庫注入和讀取數據。例如,我想要執行以下操作:在FitNesse中可以在Java和FitSharp測試頁面之間共享變量或數據嗎?

1)將記錄直接保存到數據庫;然後

2)使用Web服務更新創建的記錄;那麼

3)檢查數據庫記錄,看它是否已被正確更新。

美中不足的是數據庫是SQL Server,而且我正在針對本地計算機上的SQL Server實例(localdb)進行開發。所以我需要FitNesse才能連接到(localdb)。

據我所見,RestFixture用於測試Web服務,只能在Java版本的FitNesse中運行。但是,用於連接數據庫的Java版DbFit只能使用Microsoft的JDBC驅動程序連接到SQL Server。根據this Stackoverflow question,MS JDBC驅動程序不支持命名管道,因此無法連接到(localdb)。因此,我將不得不使用適用於(localdb)的DbFit的FitSharp(.NET)版本。

現在的問題是Java RestFixture與FitSharp DbFit的結合。例如,如果我通過DbFit在數據庫中創建了一條新記錄,我想回讀剛剛創建的記錄的標識值,並使用該值標識要通過Web服務更新的記錄。所以我需要將一個變量或一些信息從FitSharp DbFit測試頁面傳遞到Java RestFixture測試頁面。這可能嗎?

+0

我看到(在http://stackoverflow.com/questions/11345746/connecting-to-sql-server-localdb-using-jdbc)jTDS確實支持到localdb的JDBC連接。這是你的選擇嗎? –

+0

@FriedHoeben:不幸的不是。 DbFit的Java版本僅支持SQL Server的Microsoft JDBC驅動程序。 –

回答

1

據我所知它不是。 REST API不支持創建和讀取?這將允許通過REST進行整個測試(不需要直接訪問數據庫,也不需要在與數據庫相同的服務器上運行)。

+0

不幸的是,Web API不支持創建和讀取數據庫中的所有表格,只有在過去幾個月內開發的新表格。創建測試所需的訂單和預訂,如果不能直接注入數據庫,則必須通過桌面應用程序完成。通過類似於Auto-It的方式,可以通過桌面應用程序自動創建訂單,但與將數據直接注入數據庫相比,這似乎非常複雜。 –