[rspec-users] rspec model testing - test on user defined validation- How do I test that the create failed.

Wegener Ken kgwcoach at yahoo.com
Fri Jan 16 11:51:02 EST 2009


Solved my problem  all the examples I could find had the following example
myTest.should_not_be_valid
but that method wasn't a valid method.

It appears the method has been refactored and the new form is
mytest.should_not(be_valid)  which does work

following test does what I want
it "should not create a new instance given incompatible attribute values" do

@invalid_attributes1 = {
    :field1 = "value for field1"
    :field2 = "value for field2"
   }

mytest = MyTest.create(@invalid_attributes) 
mytest.should_not(be_valid)
end 

 Ken Wegener



----- Original Message ----
From: Ken Wegener <kgwcoach at yahoo.com>
To: rspec-users at rubyforge.org
Sent: Friday, January 16, 2009 6:29:19 AM
Subject: [rspec-users] rspec model testing - test on user defined validation- How do I test that the create failed.


I'm new to rspec and looking for way to test a validation I added to a model.

The test checks to see that if field1 has a value then field2 must be nil
and vice versa.

-------------------------------
When I did the rspec_scaffold it generated one test which worked

before :each do
  @valid_attributes = {
    :field1 = "value for field1"
    :field2 = "value for field2"
   }

MyTest.create!(@valid_attributes)
end

it "should create a new instance given valid attributes" do
MyTest.create!(@valid_attributes)
end

---------------------------------
Before coding I modified the test file as follows

it "should create a new instance given valid attributes" do

@valid_attributes1 = {
    :field1 = "value for field1"
    :field2 = nil
   }

MyTest.create!(@valid_attributes1)

  @valid_attributes2 = {
    :field1 = nil
    :field2 = "value for field2"
   }

MyTest.create!(@valid_attributes2)
end

it "should not create a new instance given incompatible attribute values" do

@invalid_attributes1 = {
    :field1 = "value for field1"
    :field2 = "value for field2"
   }

MyTest.create!(@invalid_attributes)   # I don't know how to test that the
save failed!!
end 

naturally the first two test failed and the last one as written didn't.

after coding my validation the first two pass and naturally last one didn't.

How do I test that the create failed.
-- 
View this message in context: http://www.nabble.com/rspec-model-testing---test-on-user-defined-validation--How-do-I-test-that-the-create-failed.-tp21465687p21465687.html
Sent from the rspec-users mailing list archive at Nabble.com.

_______________________________________________
rspec-users mailing list
rspec-users at rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users



      


More information about the rspec-users mailing list