How can I test that a value is "greater than or equal to" in Jasmine?

I want to confirm that a value is a decimal (or 0), so the number should be greater than or equal to zero and less than 1.

describe('percent',function(){  

  it('should be a decimal', function() {

    var percent = insights.percent; 
    expect(percent).toBeGreaterThan(0);
    expect(percent).toBeLessThan(1);

  });

});

How do I mimic " >= 0 "?


Solution 1:

I figured I should update this since the API has changed in newer versions of Jasmine. The Jasmine API now has built in functions for:

  • toBeGreaterThanOrEqual
  • toBeLessThanOrEqual

You should use these functions in preference to the advice below.

Click here for more information on the Jasmine matchers API


I know that this is an old and solved question, but I noticed that a fairly neat solution was missed. Since greater than or equal to is the inverse of the less than function, Try:

expect(percent).not.toBeLessThan(0);

In this approach, the value of percent can be returned by an async function and processed as a part of the control flow.

Solution 2:

You just need to run the comparison operation first, and then check if it's truthy.

describe('percent',function(){
  it('should be a decimal',function(){

    var percent = insights.percent;

    expect(percent >= 0).toBeTruthy();
    expect(percent).toBeLessThan(1);

  });   
});