Git Product home page Git Product logo

Comments (5)

tim-wovn avatar tim-wovn commented on September 27, 2024 1

Thanks for reporting this. Just to clarify, is this problem specific to stubbing the #class method on a concrete class? Or just stubbing any method...?

@floehopper Sorry, I should have been clearer. The example reflects my particular use case however, testing further, it seems that stubbing anything will trigger the error e.g. foo_mocks.stubs(:bar).

I've updated my example. 🙇

from mocha.

floehopper avatar floehopper commented on September 27, 2024 1

@tim-wovn

I've just tried reproducing this. I can only reproduce it by incorrectly using the Mocha::Mock#initialize method like you do in your example code:

require "bundler/setup"
require "minitest/autorun"
require 'mocha/minitest'
require 'mocha/mock'

class Foo; end

class FooTest < Minitest::Test
  def test_foo
    foo = Mocha::Mock.new(Foo)
    foo.stubs(:bar) # => NoMethodError: undefined method `sequences' for Foo:Class
  end
end

However, Mocha::Mock#initialize is not part of the public API, so you shouldn't be using it / relying on its behaviour. Also the first argument to Mocha::Mock#initialize is an instance of the internal Mocha::Mockery class and not the class the mock is replacing. Is the code you have posted representative of your actual code?

Changing the test to something more idiomatic works fine (no errors/failures):

  def test_foo
    foo = mock('Foo')
    foo.stubs(:bar)
  end

Note that the first argument to Mocha::API#mock must be a String or a Symbol (not a class).

Maybe you want something like Mocha::Mock#responds_like_instance_of?

I'm not really sure what you're trying to do and/or why it was working before the upgrade!

from mocha.

floehopper avatar floehopper commented on September 27, 2024

@tim-wovn Thanks for reporting this. Just to clarify, is this problem specific to stubbing the #class method on a concrete class? Or just stubbing any method...?

from mocha.

tim-wovn avatar tim-wovn commented on September 27, 2024

@floehopper Thank you for the investigation. After reading your explanation, I think we can close this issue as "user error". 🙇

For this particular use case, we've defined the mocks in some mock helper classes that are not tests themselves but are later used inside of our tests. Because of that, mock() is not defined, although extending the helper class with extend Mocha::API seems to do the trick.

(I do get some test failures but the failures seem legitimate--I'm not sure why the tests were passing before! 😨 )

Sorry for taking your time. Thank you again for investigating!

from mocha.

floehopper avatar floehopper commented on September 27, 2024

@tim-wovn No worries - thanks for getting back to me!

from mocha.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.