Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8687031
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 12, 20262026-06-12T23:00:59+00:00 2026-06-12T23:00:59+00:00

I can’t figure out why my 2nd example is passing even though it should

  • 0

I can’t figure out why my 2nd example is passing even though it should be failing

this is my person_spec.rb:

require 'spec_helper'

describe Person do
  it "must have a first name" do
    subject { Person.new(first_name: "", last_name: "Kowalski") }
    subject.should_not be_valid
  end

  it "must have a last name" do
    subject { Person.new(first_name: "Jan") }
    subject.should_not be_valid
  end
end

this is my person.rb

class Person < ActiveRecord::Base
  attr_accessible :first_name, :last_name

  validates :first_name, presence: true

  def full_name
    return "#{@first_name}  #{@last_name}"
  end
end

My rspec output:

Person
  must have a last name
  must have a first name

Finished in 0.09501 seconds
2 examples, 0 failures

Randomized with seed 51711

What is even worse is that my further examples are failing/passing in a very unexpected way. It seems that somehow my subject is an instance of Person but with neither the first_name nor last_name assigned

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-12T23:01:00+00:00Added an answer on June 12, 2026 at 11:01 pm

    I think you have two main issues here. First, if I’m not mistaken, you’re supposed to use subject in a group scope, but not within an actual spec. Here’s an example from the rspec docs:

    describe Array, "with some elements" do
      subject { [1,2,3] }
      it "should have the prescribed elements" do
        subject.should == [1,2,3]
      end
    end
    

    Note that the subject is declared outside of the it block. So, I think it’s reasonable to see some unexpected behavior here. I haven’t dug into the source code here, but I have a feeling that would be educational.

    Secondly, your specs can be greatly simplified by following these guidelines from David Chelimsky. Your spec can look more like this:

    describe Person do
      it { should validate_presence_of(:first_name) }
    end
    

    Shorter, sweeter, and will probably work correctly.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Can't figure out how to do this in a pretty way : I have
Can anybody help me? What should be the datatype for this type -07:00:00 of
Can't seem to figure out what's wrong with the simple getJSON call below. It's
Can any one help me in sorting this out in sed/awk/perl Input file Start
Can anyone help me trying to find out why this doesn't work. The brushes
Can anyone explain to me why this program: for(float i = -1; i <
I'm new to using the Perl treebuilder module for HTML parsing and can't figure
Can I run this in a Windows command prompt like I can run it
can someone explain why the compiler accepts only this code template<typename L, size_t offset,
Can someone please explain why this doesn't work? MyClass myClass1 = new MyClass(); object

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.