我对测试驱动开发的概念很陌生(对 Rails 也很陌生)。我不知道如何为我的应用程序编写测试。
作为背景,Web 应用程序是一个同行评估工具,其中为各个小组分配调查,要求他们评估他们的同行。所以一个示例问题如下所示:
Rate your peers on time management.
- Peer 1: __
- Peer 2: __
- Yourself: __
我如何在内部进行设置是这样的:
我有一个Survey
与模型has_many
关联的Assignment
模型(控制组间调查的可见性),该模型充当模型的连接Survey
模型Group
。在Group
模型中存在has_many
与User
s 的关联。
因为可以为多个组分配同一个调查,所以我必须找出Group
要求某个用户评估哪个用户。(因此调查将是相同的,但出现在上面示例中的人会因用户而异)。
我决定创建一个方法 ,assignees_for_user(user)
它本质上将返回已分配给调查的用户组。
我希望能够对这种方法进行单元测试。到目前为止,我正在使用 rspec 和 factory_girl。我有几个问题:
- 我的方法在设计上是否正确?
- 我应该测试这个吗?如果是这样,我需要为 、 和 创建实例
Assignment
,Group
对User
吗? - 我可以存根/模拟这些实例而不将它们持久化到数据库中的最佳方法是什么?还是我必须这样做?
谢谢!