Skip to content

Instantly share code, notes, and snippets.

@JeffreyWay
Created May 29, 2013 21:34
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JeffreyWay/5674014 to your computer and use it in GitHub Desktop.
Save JeffreyWay/5674014 to your computer and use it in GitHub Desktop.
<?php
class User extends Eloquent {
public function getOldest()
{
return $this->orderBy('age', 'desc')->first();
}
}
@alexrussell
Copy link

@JeffreyWay A-ha I think your 'answer' to #2 answered my question about fixtures (at least to an extent).

@JeffreyWay
Copy link
Author

Hey, Alex -

I'd always use mocks if the method did more than simply call a method. This is a different case though. Chris outlined my views well.

@DavertMik
Copy link

@JeffreyWay
Mocks is a must when you deal with asynchronous storage. Like RabbitMQ, or web services, for instance. It's really hard to check data there.

If connection happens synchronously, there is no actual reason to separate tests from data. Especially when database is properly cleaned and fixtures are used.

@ukoasis
Copy link

ukoasis commented May 30, 2013

2

@mdespuits
Copy link

2

When dealing with databases and queries, ALWAYS use integration. Yes, you could use a mock expectation that the method was called, and yes, you can have faith that Eloquent will query properly, but with databases, unless you are dealing with real data, you cannot always be absolutely sure that you did it right. What if you typo-d the method or the parameters in the production and test code? Your tests would pass, but you would have a nasty 🐛.

Mocks are much more useful for asserting that interfaces around external APIs are called properly from your own abstraction, not for testing that the ORM runs the right query and the database returns the right values.

@vladan-zoricic
Copy link

Some combination of 2 and 3.

@JulienItard
Copy link

2

@jlambe
Copy link

jlambe commented May 30, 2013

2 because we're dealing with datas from the database. Otherwise 3 if you intend to test a method that format a given data.

@lnguyen0901
Copy link

2 and 3

@hasokeric
Copy link

2

@torkiljohnsen
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment