0

我最近创建了一个帐户模型。在这个帐户模型中,我有一个我想要严格数字的 id。我正在尝试创建一个 RSpec 测试,以确保我无法输入任何字母,但遇到了困难。

问题:如何测试我的 id 以确保它不能包含任何字母?

4

3 回答 3

0

kind_of像这样使用:

object.should be_a_kind_of(Numeric)

文档中:

3.should be_a_kind_of(Fixnum) => 3.kind_of?(Numeric) #passes
3.should be_a_kind_of(Numeric) => 3.kind_of?(Numeric) #passes
3.should be_an_instance_of(Fixnum) => 3.instance_of?(Fixnum) #passes
3.should_not be_instance_of(Numeric) => 3.instance_of?(Numeric) #fails
于 2013-11-12T23:47:03.087 回答
0

更好的是,你可以用这样的期望一石二鸟

subject.should be_eql 3

因为它将具有正确的类型和正确的值。使用eql?保证你id1.hash == id2.hash

虽然,您总是可以将您的案例分为两个期望:价值和类型。对于类型匹配,您可以使用kind_of匹配器或使用类上的运算符检查继承<

subject.should be_kind_of(Numeric)

或者

subject.class.should < Numeric
于 2013-11-13T00:09:06.643 回答
0

默认情况下,在 Rails 中,您不能在 primary_key 属性中保存任何其他数据类型。

于 2016-10-13T09:11:02.327 回答