Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 "?

like image 928
Bryce Johnson Avatar asked Jun 06 '14 20:06

Bryce Johnson


2 Answers

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.

like image 132
Andrew Avatar answered Oct 12 '22 23:10

Andrew


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);    });    }); 
like image 44
Bryce Johnson Avatar answered Oct 13 '22 00:10

Bryce Johnson