mirror of
https://github.com/inspec/inspec
synced 2024-11-23 13:13:22 +00:00
Add cmp
vs eq
to the style guide (#3536)
Signed-off-by: Jerry Aldrich <jerryaldrichiii@gmail.com>
This commit is contained in:
parent
03627eac36
commit
329da7f679
1 changed files with 24 additions and 2 deletions
|
@ -117,7 +117,7 @@ Ruby's command executors will only run localy. Imagine a test like this:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
describe `whoami` do
|
describe `whoami` do
|
||||||
it { should eq "bob\n" }
|
it { should cmp "bob\n" }
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ Instead, do this:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
describe command('whoami') do
|
describe command('whoami') do
|
||||||
its('stdout') { should eq "bob\n" }
|
its('stdout') { should cmp "bob\n" }
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -176,3 +176,25 @@ Also you may find it helpful to use the inspec logging interface:
|
||||||
```ruby
|
```ruby
|
||||||
Inspec::Log.info('Hi')
|
Inspec::Log.info('Hi')
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 9. Favor `cmp` over `eq`
|
||||||
|
|
||||||
|
Reason: The `cmp` matcher handles type conversions, case insensitive comparisons, converting strings to versions (e.g. '7.35.0-1ubuntu2.10'), and many other troublesome things. Unless you are wanting an exact match (if so use the `eq` matcher) then the `cmp` matcher should be used.
|
||||||
|
|
||||||
|
For example, this:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
describe passwd.uids(0) do
|
||||||
|
its('users') { should cmp 'root' }
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
is preferred over:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
describe passwd.uids(0) do
|
||||||
|
its('users') { should eq ['root'] }
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
See the [`cmp` matcher documentation](https://www.inspec.io/docs/reference/matchers/#cmp) for more examples.
|
||||||
|
|
Loading…
Reference in a new issue