如果你不知道所有的WITH值,如何使用Rspec any_instance_of

时间:2014-11-19 02:37:26

标签: ruby-on-rails testing rspec

我在测试中创建了一条新记录...在创建记录期间,应用程序调用另一个类来通知用户有关创建记录的信息。

一个人为的例子可能是

 user = User.make!
 expect_any_instance_of(Notifier).to receive(:tell_user).with(user.id, new_message_id)
 Message.create(author: User.make!, recepient: user, message: 'this is a test')

现在显然我不知道将要创建的消息的ID 因此,我想知道是否有人知道我是如何构建预期的一部分而不关心第二个参数中的值,而是关心第一个参数中的值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为你要找的是kind_of方法

user = User.make!
expect_any_instance_of(Notifier).to receive(:tell_user).with(user.id, kind_of(Numeric))
Message.create(author: User.make!, recepient: user, message: 'this is a test')

如果您想更具体,也可以使用instance_of(Fixnum)