Skip to content

Instantly share code, notes, and snippets.

@mhenrixon
Created November 13, 2012 09:56
Show Gist options
  • Save mhenrixon/4064957 to your computer and use it in GitHub Desktop.
Save mhenrixon/4064957 to your computer and use it in GitHub Desktop.
Comparison of RSpec with Test Unit
require 'spec_helper'
describe User do
describe "#password_reset" do
let(:site) { create :site }
let(:user) { create :user }
it "creates a password_reset_token" do
expect{
user.send_password_reset(site)
}.to change(user, :password_reset_token).from(nil)
end
it "sets what time the reset is sent" do
expect{
user.send_password_reset(site)
}.to change(user, :password_reset_sent_at).from(nil)
end
it "generates a unique password_reset_token every time" do
user.send_password_reset(site)
last_token = user.password_reset_token
expect{
user.send_password_reset(site)
}.to change(user, :password_reset_token).from(last_token)
end
it "changes password_digest when generate_token is called" do
expect{
user.generate_token(:password_digest)
}.to change(user, :password_digest)
end
end
end
require 'test_helper'
class UserTest < ActiveSupport::TestCase
test 'to generate a unique password_reset_token every time' do
site = sites(:one)
user = users(:one)
user.send_password_reset(site)
last_token = user.password_reset_token
user.send_password_reset(site)
assert_not_equal(last_token, user.password_reset_token)
end
test 'to save the time the password reset was sent' do
site = sites(:one)
user = users(:one)
user.send_password_reset(site)
assert(user.password_reset_sent_at.present?)
end
test 'that the specified attribute is affected when a token is generated' do
digest = users(:one).password_digest
users(:one).generate_token(:password_digest)
assert_not_equal(users(:one).password_digest, digest)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment