Giter VIP home page Giter VIP logo

Comments (3)

insanehunter avatar insanehunter commented on August 18, 2024

So after a short investigation I found that I understood the whole concept of mocking in a bad way. The behavior I thought to be invalid is indeed valid - mock object doesn't forward messages to an underlying instance, it's a job for partial mocks, that are not yet implemented, right?

from ocmockito.

jonreid avatar jonreid commented on August 18, 2024

Correct, partial mocks aren't implemented yet. But beware, partial mocking can be a code smell. In your case, what you're trying to specify seems too restrictive. Try to think in terms of observable effects, and you may find there's no need for a mock at all. For example:

- (void)testLessonShouldHaveGivenName
{
    // given
    LessonModel *lesson = [LessonModel lessonWithName:@"NAME"];

    // then
    assertThat([lesson name], is(@"NAME"));
}

In other words, don't write a test that one method calls another within its own class. That only leads to fragile, overspecified tests that keep code from being flexible. Instead, call the method and test that it does the right thing. Use mocks only for things that are too expensive or unreliable (like database or network access) or for systems you don't own (like Cocoa singletons).

from ocmockito.

insanehunter avatar insanehunter commented on August 18, 2024

Thank you!

from ocmockito.

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.