Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
about assert_difference problem. help!!
OnRails Ruby
9/3/2007 2:47:00 AM
class PersonTest < Test::Unit::TestCase
fixtures :people
def setup
end
def test_should_create_person
assert_difference people, :count do
person=Person.newly_created
assert !person.new_record?,
"#{person.errors.full_messages.to_sentence}"
end
end
end
people.yml
test1:
id: 1
user_id: 1
firstname: test1
lastname: YY
test2:
id: 2
user_id: 2
firstname: test2
lastname: TT
ruby test\unit\person_test.rb
1) Error:
test_should_create_person(PersonTest):
ArgumentError: wrong number of arguments (0 for 1)
test/unit/person_test.rb:16:in `people'
test/unit/person_test.rb:16:in `test_should_create_person'
1 tests, 0 assertions, 0 failures, 1 errors
I don't know why causeed this proble. who can tell me? Thanks.
--
Posted via
http://www.ruby-...
.
3 Answers
Phlip
9/3/2007 3:09:00 AM
0
OnRails Ruby wrote:
> def test_should_create_person
> assert_difference people, :count do
> person=Person.newly_created
How is assert_difference expected to inflect "people" into "Person"? Or is
people declared somewhere else?
Use assert_latest:
person = assert_latest Person do
Person.newly_created # <-- you supply this, right?
end
assert person.new_record?
Note that assert_latest returns nil, one item, or an [] array of items. So
calling .new_record? on its return value is itself a test that one item
appeared.
> assert !person.new_record?,
> "#{person.errors.full_messages.to_sentence}"
That line says to flunk if person is not a new record; is this what you
wanted?
> people.yml
> test1:
Both assert_difference (which comes from various plugins, not from Rails)
and assert_latest (which comes from
http://www.oreillynet.com/onlamp/blog/2007/07/assert_latest_and_gre...
)
don't detect fixtures, because they appear just before setup() time.
--
Phlip
http://www.oreilly.com/catalog/9780...
"Test Driven Ajax (on Rails)"
assert_xpath, assert_javascript, & assert_ajax
OnRails Ruby
9/3/2007 4:13:00 AM
0
I just want to do unit/test, test to creat person data into the table
"people" of model person. and in model person, there is "def
Person.newly_created(args)" method.
In fixtures file, there is
test1:
id: 1
user_id: 1
firstname: test1
lastname: YY
test2:
id: 2
user_id: 2
firstname: test2
lastname: TT
I want to use assert_difference to test creat all data into database.
and now I modified as blow:
def test_should_create_person
assert_difference Person, :count do
assert=Person.newly_created.valid?
end
end
but there is same error:
1) Error:
test_should_create_person(PersonTest):
ArgumentError: wrong number of arguments (0 for 1)
test/unit/person_test.rb:17:in `newly_created'
test/unit/person_test.rb:17:in `test_should_create_person'
D:/kisscafe/config/../lib/authenticated_test_helper.rb:42:in
`assert_differe
nce'
test/unit/person_test.rb:16:in `test_should_create_person'
1 tests, 0 assertions, 0 failures, 1 errors
So I don't know how to fix this problem.
By the way, I have read assert_latest, but I don't think that can
perform my target.
ThanKs, Phlip
--
Posted via
http://www.ruby-...
.
OnRails Ruby
9/3/2007 5:44:00 AM
0
OnRails Ruby wrote:
> I just want to do unit/test, test to creat person data into the table
> "people" of model person. and in model person, there is "def
> Person.newly_created(args)" method.
> In fixtures file, there is
> test1:
> id: 1
> user_id: 1
> firstname: test1
> lastname: YY
> test2:
> id: 2
> user_id: 2
> firstname: test2
> lastname: TT
> I want to use assert_difference to test creat all data into database.
> and now I modified as blow:
> def test_should_create_person
> assert_difference Person, :count do
> assert.Person.newly_created.valid?
> end
> end
> but there is same error:
> 1) Error:
> test_should_create_person(PersonTest):
> ArgumentError: wrong number of arguments (0 for 1)
> test/unit/person_test.rb:17:in `newly_created'
> test/unit/person_test.rb:17:in `test_should_create_person'
> D:/kisscafe/config/../lib/authenticated_test_helper.rb:42:in
> `assert_differe
> nce'
> test/unit/person_test.rb:16:in `test_should_create_person'
>
> 1 tests, 0 assertions, 0 failures, 1 errors
>
> So I don't know how to fix this problem.
>
> By the way, I have read assert_latest, but I don't think that can
> perform my target.
> ThanKs, P
def test_should_create_person
assert_difference Person, :count do
assert.Person.newly_created.valid?
end
end
--
Posted via
http://www.ruby-...
.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
about assert_difference problem. help!!
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password