BDD和表视图数据源

时间:2015-01-02 18:05:44

标签: ios objective-c swift delegates bdd

在我目前的项目中,我执行行为驱动开发。

该应用有一个表格视图。我有一个UITableViewController子类和NSObject上的子类作为数据源和表视图的委托。

表视图的数据源(和委托)被设置为表视图控制器的属性,并将其设置为viewDidLoad中表视图的数据源和委托。

在TDD中,我将测试表视图数据源和委托是否与表视图控制器的属性设置相同。另外我会测试数据源。但在BDD中,我的印象是,这是规范中的许多内部信息。

在BDD中,我宁愿测试表视图的内容。但这意味着我必须立即在测试中设置两个被测对象。表视图控制器和表视图的委托。这似乎是错误的,因为这使得测试再次依赖于内部实现。

我不想让表视图控制器来定义表视图的数据源,因为我想在同一个应用程序中为不同的表视图重用它。

任何想法如何"应该"在BDD完成?

1 个答案:

答案 0 :(得分:0)

BDD代表行为驱动开发。这需要考虑并描述在进行开发之前的行为。在这种情况下,您已经完成了开发,所以当然您发现很难做BDD

一旦你已经获得了代码并试图“测试”它,那么你就不会做BDD或TDD了。

您可以通过假装没有编写视图来进行BDD的思考实验。然后编写一个场景,描述为什么需要这个特定的视图(即它给出了什么商业价值)以及你可以用它做什么......

或者只为您编写的代码编写单元测试