Skip to content

Celluloid actors #24

Description

@LTe

I have problem with Bogus and Celluloid. Bogus expects that Method object will be respond to name method. But Celluloid::Method does not respond for this method.

How to reproduce:

# celluloid_spec.rb
class Actor
  include Celluloid

  def test_method
    puts "hello"
  end
end

require 'rspec'
require 'bogus/rspec'

describe Actor do
  fake(:actor)

  before { stub(subject).test_method { "value" } } 

  it "returns value" do
    subject.test_method.should == "value"
  end
end

And we can execute spec for that

Failures:

  1) Actor returns value
     Failure/Error: before { stub(subject).test_method { "value" } }
     NoMethodError:
       undefined method `name' for #<Celluloid::Method Actor#test_method>
     # ./celluloid_method.rb:17:in `block (2 levels) in <top (required)>'

Finished in 0.00818 seconds
1 example, 1 failure

I created workaround for that: https://github.com/LTe/dht/blob/master/spec/support/celluloid_method.rb

Solutions:

  1. Create pull request to celluloid.
  2. Bogus should display information about problem with method object.
  3. Add information to wiki about - how to test celluloid actors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions