1
我可以在RSpec中找到测试设计用户控制器和视图的建议。我也看到了有关设计宝石代码已经过测试的建议,因此花大量时间重新发明轮子是没有用的。如何使用RSpec测试我的设计用户模型验证?
但是,我的用户模型有其他字段,我需要在用户注册时进行验证。我在user.rb模型中使用标准validates...
语句。例如:
validates_presence_of :nickname
我想在我的user_spec.rb用简单的验证测试,但是当我尝试创建这样的用户:
record = Factory.create(:user)
我得到这个错误:
undefined method `encode!' for "Confirmation":String
encode!
方法不是来自我的代码,它必须是设计正在使用的宝石之一,但我还没有找到它。
我试着创建用户使用User.new和工厂的女孩。无论哪种方式我都会得到同样的错误这个规范正在传递,直到我更新了所有的宝石。不幸的是,我没有记下当时更新的所有内容。我试着将设计回滚到以前的版本,但仍然得到相同的错误。
Rails 3,RSpec2
感谢您的任何建议。
感谢。我认为这可能是我创建用户时包含(或缺失)的内容。你的工厂定义为:用户是什么样的?我的是: 'Factory.define:user,:class => User do | f | F.ID 327 f.email '[email protected]' f.password 'shadow33' f.password_confirmation 'shadow33' f.nickname '影子' end' – heyrolled 2011-05-12 12:12:42
你举的例子使我的罪魁祸首.. 。Factory.create(:user)'和'Factory.build(:user)'之间的区别。谢谢您的帮助! – heyrolled 2011-05-12 13:00:31