单元测试属于哪里?

时间:2011-10-21 18:39:15

标签: ruby-on-rails ruby unit-testing bdd

我认为这与您构建应用程序的平台无关。为了论证,我使用的是Ruby on Rails。这是问题所在。我有两个紧密耦合的模型,紧密耦合我的意思是它们处于has_many关系。假设,我们假设这两个模型如下:

  • 用户模型
  • 技能模型

用户有很多技能。在此特定应用程序中,技能只能属于一个用户。一旦技能达到一定程度的掌握,我想将用户的成就属性增加一个。就实现而言,非常直接的问题就是哈希。

我的问题是,这种逻辑的测试最适合哪里?它会进入user_test.rb吗? skill_test.rb?我最初的想法是,因为它是为用户更新计数器的个人技能,所有测试都应该进入技能测试。我的另一个想法是,只要测试在那里,谁真正关心?这里有对错吗?

2 个答案:

答案 0 :(得分:0)

我自己会把它放在用户模型中,因为技能确实属于用户,成就属性也是如此,并且您正在测试用户功能。

另一种思考方式是,如果这是一个没有数据库的桌面应用程序,您更愿意创建代表用户和技能的类吗?您是否希望用户拥有一组技能或技能以获得用户参考?我会说前者是更直观的设计。

由于像ActiveRecord这样的ORM技术旨在允许您以面向对象的格式表示关系设计,因此编写测试就好像对象是按照您通常想要设计它们的方式设计的纯对象类型一样。

答案 1 :(得分:0)

我认为这里发生的事情是你不需要单元测试,而是需要验收测试。

有一个问题询问差异here