# Mock a %x call

**URL:** <https://www.ruby-forum.com/t/mock-a-x-call/168320>\
**Category:** Ruby\
**Created:** [May 19, 2009, 4:07pm UTC](https://www.ruby-forum.com/t/mock-a-x-call/168320 "2009-05-19T16:07:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![fipa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/9e8a1a/32.png) [@fipa](https://www.ruby-forum.com/u/fipa)\
**Post date:** [May 19, 2009, 4:07pm UTC](https://www.ruby-forum.com/t/mock-a-x-call/168320/1 "2009-05-19T16:07:56Z")

</div>

Hi,

Is it possible to mock such method call?

I tried: Kernel.expects(:’%x’).returns(‘whatever’).

But I get the following error:  
SyntaxError: compile error  
/usr/local/ruby1.8.7/lib/ruby/gems/1.8/gems/mocha-0.9.5/lib/mocha/class\_method.rb:40:  
syntax error, unexpected ‘(’, expecting ‘\n’ or ‘;’  
def %x(\*args, &block); mocha.method\_missing(:%x, \*args, &block); end

---

<div class="post-metadata">

**Author:** ![fipa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/9e8a1a/32.png) [@fipa](https://www.ruby-forum.com/u/fipa)\
**Post date:** [May 19, 2009, 8:26pm UTC](https://www.ruby-forum.com/t/mock-a-x-call/168320/2 "2009-05-19T20:26:17Z")

</div>

On Tue, May 19, 2009 at 8:07 AM, Fernando P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> def %x(\*args, &block); mocha.method\_missing(:%x, \*args, &block); end  
> The various % constructs in ruby are handled by the parser and,  
> therefore, cannot be mocked using method stubbing employed by mocha,  
> rspec mocks, et al.

Blessings,  
TwP

---

<div class="post-metadata">

**Author:** ![fipa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/9e8a1a/32.png) [@fipa](https://www.ruby-forum.com/u/fipa)\
**Post date:** [May 20, 2009, 12:17am UTC](https://www.ruby-forum.com/t/mock-a-x-call/168320/3 "2009-05-20T00:17:07Z")

</div>

Hi,

At Tue, 19 May 2009 23:07:58 +0900,  
Fernando P. wrote in [ruby-talk:336901]:

> I tried: Kernel.expects(:’%x’).returns(‘whatever’).
> 
> But I get the following error:  
> SyntaxError: compile error  
> /usr/local/ruby1.8.7/lib/ruby/gems/1.8/gems/mocha-0.9.5/lib/mocha/class\_method.rb:40:  
> syntax error, unexpected ‘(’, expecting ‘\n’ or ‘;’  
> def %x(\*args, &block); mocha.method\_missing(:%x, \*args, &block); end

Maybe, expects(:`)?
