and another problem.
I want to try to make it work with factories,
So I made this factory.
spec/factories/products.rb :
FactoryGirl.define do
factory :product do
description "This is the first book"
image_url "test.jpg"
price 1.00
sequence (:title) { |n| "book#{n}" }
end
end
spec file :
require 'spec_helper'
describe Product do
it "is valid with a productname, description and a image_url " do
expect (FactoryGirl.build(:product)).to be_valid
end
end
but when I ran rspec now I see this message :
Failure/Error: expect (FactoryGirl.build(:product)).to be_valid
NoMethodError:
undefined method `to' for #<Product:0x007f5fcb1a9398>
Roelof
Op donderdag 11 december 2014 09:43:17 UTC+1 schreef Roelof Wobben:
> Thanks,
>
> I noticed something wierd in the ecommerce book.
>
> On the model there is first stated : validates :title, :description,
> :image_url, presence: true
> which means that the image_url must be filled in .
>
> Later is stated : validates :image_url, allow_blank: true,
> Which means the image_url can be empty.
>
> Do I think right ? and wierd minitest is not finding this
>
> Roelof
>
>
> Op donderdag 11 december 2014 07:15:16 UTC+1 schreef Myron Marston:
>
>> On Tuesday, December 9, 2014 11:15:07 PM UTC-8, Roelof Wobben wrote:
>>>
>>> Here my repo : https://github.com/roelof1967/commerce-try
>>>
>>> Roelof
>>>
>>> Op woensdag 10 december 2014 07:42:47 UTC+1 schreef Roelof Wobben:
>>>
>>>> I did also rails g rspec:install otherwise rspec do not give output.
>>>>
>>>> Roelof
>>>>
>>>>
>>>> Op woensdag 10 december 2014 00:23:21 UTC+1 schreef Carlos Figueiredo:
>>>>
>>>>> Minitest is the default test suite on Rails.
>>>>>
>>>>> Did you just installed rspec-rails gem, or did you also run `rails
>>>>> generate rspec:install` ?
>>>>>
>>>>> Because `rails generate rspec:install` configures you env to run rspec.
>>>>>
>>>>> Carlos
>>>>>
>>>>> On Tue, Dec 9, 2014 at 7:12 PM, Roelof Wobben <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> I use the rspec rails gem .
>>>>>>
>>>>>> I found this in the gem file :
>>>>>>
>>>>>> gem "rspec-rails", "~> 2.14.0"
>>>>>>
>>>>>> If you want , I can upload this project to my personal github page.
>>>>>>
>>>>>> How can I print out the product.errors ?
>>>>>>
>>>>>> Roelof
>>>>>>
>>>>>> Op dinsdag 9 december 2014 21:53:35 UTC+1 schreef Myron Marston:
>>>>>>
>>>>>>> On Tuesday, December 9, 2014 11:05:26 AM UTC-8, Roelof Wobben wrote:
>>>>>>>>
>>>>>>>> I will cut the error message in two.
>>>>>>>>
>>>>>>>> the minitest error message :
>>>>>>>>
>>>>>>>> Warning: you should require 'minitest/autorun' instead.
>>>>>>>>
>>>>>>>>
>>>>>>>> Warning: or add 'gem "minitest"' before 'require "
>>>>>>>> minitest/autorun"'
>>>>>>>>
>>>>>>>> and the Rspec error message :
>>>>>>>>
>>>>>>>> Failures:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 1) Product is valid with a productname, description and
>>>>>>>> a image_url
>>>>>>>>
>>>>>>>> Failure/Error: expect(product).to be_valid
>>>>>>>>
>>>>>>>>
>>>>>>>> expected valid? to return true, got false
>>>>>>>>
>>>>>>>>
>>>>>>>> # ./spec/model/product_spec.rb:10:in `block (2
>>>>>>>> levels) in <top (required)>'
>>>>>>>>
>>>>>>>> Roelof
>>>>>>>>
>>>>>>>
>>>>>>> The expectation failure is telling you that `product.valid?` did not
>>>>>>> return true as expected. It's impossible for us to say what
>>>>>>> specifically
>>>>>>> is making it invalid. You'll have to check `product.errors` to see
>>>>>>> what
>>>>>>> the validation errors are. It looks like your spec is running without
>>>>>>> rspec-rails loaded (since `be_valid` isn't providing the errors -- the
>>>>>>> default `be_valid` matcher in rspec-expectations just checks `valid?`
>>>>>>> but
>>>>>>> doesn't know to look for `errors`). If you load `rspec-rails`, an
>>>>>>> improved
>>>>>>> `be_valid` matcher is available that will include the validation errors
>>>>>>> in
>>>>>>> the failure message:
>>>>>>>
>>>>>>> https://github.com/rspec/rspec-rails/blob/v3.1.0/lib/
>>>>>>> rspec/rails/matchers/be_valid.rb
>>>>>>>
>>>>>>> If you use that, it should pinpoint what the validation error is,
>>>>>>> and then you can fix it.
>>>>>>>
>>>>>>> HTH,
>>>>>>> Myron
>>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "rspec" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/rspec/a68be083-ab07-437b-b3ec-4ddb9a978b5d%40googlegroups.com
>>>>>>
>>>>>> <https://groups.google.com/d/msgid/rspec/a68be083-ab07-437b-b3ec-4ddb9a978b5d%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>> OK, I've taken a look at your repository and discovered a few things:
>>
>> - The minitest warning is triggered by shoulda-matchers. If you
>> read the changelog[1], you'll notice that 2.6.0 fixes this, so you should
>> upgrade.
>> - You're on an old version of RSpec, too -- please upgrade to RSpec 3
>> [2]
>> - The rspec-rails `be_valid` matcher isn't being used in your case
>> because your spec file is in the `spec/model` directory, not the
>> `spec/models` directory. These sorts of subtleties are why we changed
>> things in RSpec 3 so that spec types aren't auto-inferred by the
>> directory
>> unless you opt in [3], and I'd encourage you to explicitly tag each spec
>> with `:type` metadata (e.g. `:type => :model`).
>> - Once you tag the example group or move the spec file to
>> `spec/models`, you'll get the validation errors in the failure message
>> and
>> from there you should be able to address tehm.
>>
>> HTH,
>> Myron
>>
>> [1] https://github.com/thoughtbot/shoulda-matchers/blob/master/NEWS.md
>> [2] http://rspec.github.io/upgrading-from-rspec-2/
>> [3]
>> http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#filetype_inference_disabled_by_default
>>
>
--
You received this message because you are subscribed to the Google Groups
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rspec/23ba00a6-c4ea-46d2-80e4-0d4bf7a23d18%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.