Q:

TDD. Please, help me solve the error

TDD:
describe RPNCalculator do

  attr_accessor :calculator

  before do
    @calculator = RPNCalculator.new
  end

it "adds two numbers" do
  calculator.push(2)
  calculator.push(3)
  calculator.plus
  calculator.value.should == 5
end
end

my code :
class RPNCalculator
attr_accessor :calculator

def initialize()
  @calculator = []
end

def RPNCalculator(x=0,y=0)
@calculator.push(x)
@calculator.push(y)
@calculator.map {|x,y| x + y }
end

error:
RPNCalculator
adds two numbers (FAILED - 1)

Failures:
1)RPNCalculator adds two numbers
Failure/Error: calculator.push(2)
NoMethodError:
undefined method `push' for #<RPNCalculator:0x000000021b85a8 @calculator=[]>

A:

The problem is in your test where you call calculator.push(2). You are calling that on the object RPNCalculator which does not have a method called push. It is rather the instance variable @calculator within the class, which you instantiated to an Array, which has that method. 
Your test should actually be:
it "adds two numbers" do
  @calculator.RPNCalculator(2,3).value.should == 5
end

I should point out that it is considered bad form to have a method name that starts with a capital letter. 
If I may be so bold as to guess what your test is trying to get at, you are wanting to push numbers into your RPNCalculator and continue to push numbers and get the sum of those numbers at will. If this is indeed the case, you may be looking for something like this:
class RPNCalculator
attr_accessor :calculator

def initialize()
  @calculator = []
end

def push(*num)
  # Use is_a? in order to ensure anything added to
  # the Array can later be added together 
  @calculator.push(*num) if num.all? {|n| n.is_a? Numeric}
  # If you would like this to work with any class that can be added
  # then change 'n.is_a? Numeric' to 'n.respond_to? :+'
end

def plus
  @calculator.reduce(:+)
end

def value
  plus
end

Doing that should make your original test work with no alteration.
Example of usage:
calc = RPNCalculator.new
calc.push(3)
calc.push(2)
calc.plus #=> 5
calc.push(6)
calc.plus #=> 8   
calc.push(1,2,3,4)
calc.plus #=> 18

Notice I use the splat operator (the asterisk) in the method definition. I would suggest doing some reading on the topic. It is worth learning and loving.

