Codeception / Stub

Flexible Stub wrapper for PHPUnit's Mock Builder
MIT License
296 stars 17 forks source link

Way to test method call with params #32

Open antonmarin opened 8 years ago

antonmarin commented 8 years ago

What are you trying to achieve?

Trying to test if method called with my params using Stub utility.

$db = Stub::make(
            Connection::className(), 
            [
                'quoteColumnName' => Stub::exactly(2, function($params){
                    return $params[0];
                }),
            ],
            $this
        );

What do you get instead?

No way or documentation to do it

Provide console output if related. Use -vvv mode for more details.

# paste output here

Provide test source code if related

// paste test

Details

# paste suite config here
Naktibalda commented 8 years ago

If Stub can't do it, just use $this->createMock() instead.

antonmarin commented 8 years ago

Tried, but it doesn't work right if i use Stub too and if use only PhpUnit mockery, then code becomes too long and difficult to read.

Kolyunya commented 3 years ago

@antonmarin I was able to implement this using the following technique:

Stub::exactly(2, function ($params) use ($I, $expected) {
    $I->assertEquals($expected, $params);
    return $params[0];
});

Would be nice to have a handy expectation builder though.