小编sta*_*ow1的帖子

如何使用关联工厂的特征?

我需要为关联模型编写测试。

规范/工厂/用户.rb:

FactoryGirl.define do
  factory :user do
    sequence(:name){ |i| "us#{i}" }
    sequence(:email){ |i| "us#{i}@ad.ad" }
    password 'qwerty'
    password_confirmation{ |u| u.password } 
    info Faker::Lorem.paragraph(7)

    trait :user_status do
      status_id 0
    end

    trait :manager_status do
      status_id 1
    end

    trait :admin_status do
      status_id 2
    end    
  end 
end
Run Code Online (Sandbox Code Playgroud)

但文件spec/factories/users.rb 是空的。

架构:

create_table "statuses", force: :cascade do |t|
  t.string "title"
end

create_table "users", force: :cascade do |t|
  t.string   "email",                  default: "", null: false
  t.string   "encrypted_password",     default: "", null: false
  t.integer  "status_id",              default: 0
  t.string   "name"  
end …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails factory-bot

5
推荐指数
1
解决办法
1万
查看次数

如何使用Python创建单例?

我正在尝试制作一个单调模式:

class Room:
    obj = None 

    def __new__(cls):          
        if cls.obj is None:               
            cls.obj = object.__new__(cls) 
        return cls.obj   

    def __init__(self, left_wall, right_wall, front_wall, back_wall):
        self.left_wall = left_wall
        self.right_wall = right_wall
        self.front_wall = front_wall
        self.back_wall = back_wall

    def __str__(self):
        return str(self.left_wall) + str(self.right_wall) + str(self.front_wall) + str(self.back_wall)


room_obj = Room(True, False, True, True)
print(room_obj)

room_obj2 = Room(True, False, False, True)
print(room_obj2)

print(room_obj is room_obj2)
Run Code Online (Sandbox Code Playgroud)

运行此代码后,在控制台中得到以下内容:

kalinin@kalinin ~/python/object2 $ python index.py
TrueFalseTrueTrue
TrueFalseFalseTrue
False
Run Code Online (Sandbox Code Playgroud)

它不应该创建两个对象

python oop singleton design-patterns

5
推荐指数
1
解决办法
460
查看次数