2015-01-02 50 views
0

在我目前的項目我做的行爲驅動開發。BDD和表格視圖數據源

的應用程序有一個表視圖。我有一個UITableViewController子類,並作爲數據源上NSObject一個子類和表視圖的代表。

表視圖的數據源(和代表)被設置爲屬性表視圖控制器和此將其設定爲在viewDidLoad表視圖的數據源和委託。

在TDD我會測試如果表視圖數據源和委託是設置爲表視圖控制器的屬性相同的對象。另外我會測試數據源。但是在BDD中,我的印象是這是規範中的內部信息。

在BDD中,我寧願測試表視圖的內容。但是,這將意味着我必須建立在試驗測試兩個對象一次。表視圖控制器和表視圖的委託。這似乎是錯誤的,因爲這使得測試再次依賴於內部實現。

我不想讓表視圖控制器定義表視圖的數據源,因爲我想在同一個應用程序中重用它以用於不同的表視圖。

任何想法如何在BDD中完成這個「應該」?

+0

請解釋你的投票!謝謝。 – dasdom

回答

0

BDD代表行爲驅動開發。這是什麼是需要思考和描述你做開發「之前」的行爲。在這種情況下,您首先完成了開發任務,因此您很難做到BDD

一旦您已經獲得了代碼並嘗試對其進行「測試」,那麼您沒有執行BDD或TDD。

你可以通過假裝你沒有寫下你的視圖來做BDD的思考實驗。然後寫一個描述你爲什麼需要這個特定的視圖(即沒有給出什麼樣的商業價值),你可能會用它做什麼的情景......

或者只寫你寫

代碼單元測試
+0

是的,你是完全正確。對我來說很難,因爲我一直都在做這種設置,而且我已經知道這個「應該」是什麼樣子。但是,讓我們說我有這樣的測試,結果證明我需要兩個真正的類來設置測試。這是好的做法嗎? – dasdom

+1

我不能說,因爲我不知道你在測試什麼,你爲什麼要測試它,以及你如何測試它。用你的代碼和你的測試來做一個單獨的問題可能會更好。 – diabolist