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