Project

MacSpec

0.0
No commit activity in last 3 years
No release in over 3 years
MacSpec is a feature minimal RSpec clone that is specifically built to work with MacRuby.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

MacSpec¶ ↑

MacSpec is a (yet) feature minimal RSpec clone that is specifically built to work with MacRuby. It is built ontop of MiniTest that ships with MacRuby and works out of the box with the MacRuby App Template for Xcode. All you have to do is to replace two lines of code and start writing your tests. No special command for running tests required. Just set your active Target to Test and hit Cmd-B.

MacSpec ships with a testing framework similar to RSpec’s.

The matchy matcher system is built in. (-> github.com/jm/matchy)

Even a mocking framework is built in.

Install¶ ↑

$sudo macgem install MacSpec

Use¶ ↑

For Starters:

Create a brandnew MacRuby Application with the Xcode template that ships with MacRuby. (Btw Have you installed MacRuby-0.5 already? www.macruby.org/downloads.html )

Open the stub_test.rb file that is located inside the Tests group and replace the content with:

require "rubygems"
require "MacSpec"

describe "MacSpec TestCase" do
  before do
    # This gets executed before each test. (Like setup)
    # Instance variables that are declared
    # inside this block will be handed down to all
    # tests.
    @obj = Object.new
  end

  after do
    # you guess it!
  end

  it "should work!" do
    # this is the body of a test
    @obj.should_receive(:hello).with("object").and_return("Hello MacSpec")
    @obj.hello("object").should == "Hello MacSpec"
  end

  describe "Nested TestCase" do
    it "has access to the stuff that has been defined in the outer before blocks" do
      @obj.stub!(:some_method)
      lambda {@obj.some_method}.should_not raise_error
    end
  end
end

Now set the active target to ‘Unit Tests’ and hit Cmd-B.

Philosophy¶ ↑

The highest priority feature will always be MacRuby compatibility. We will expand MacSpec’s feature set towards RSpec’s feature set step by step.

Features¶ ↑

Lots of matchers¶ ↑

A testing framework ¶ ↑

With nested describe blocks, chained setup and teardown, fit and xit, shared_example_groups

A mock framework¶ ↑

With mock objects, method stubs and method expectations (aka partials)

Copyright © 2010 Matthias Hennemeyer. See LICENSE for details. matchy is © 2008 Jeremy McAnally