Could you add in the opposite of this test?
```ruby
it "should preserve the ID that was set if the label was a proc" do
  MenuItem.new(:label => proc{ "Dynamic Id" }, :id => "static_id").id.should == "static_id"
end
```

Also, there should be a test that has a proc that will return different values on each call like `rand`, where we expect that if we call it twice then the ID should be different.