Как игнорировать ошибку RSpec :: ExampleGroups :: EmptyContentValidation при компиляции нулевого значения в JSON? - PullRequest
0 голосов
/ 20 октября 2019

Вот то, что я получаю:

*** NameError Exception: undefined local variable or method `null' for #<RSpec::ExampleGroups::EmptyContentValidation:0x00007fdd2d2775d8>

Вот то, что я имею как код:

actual =
        {
            "posts": [
                {
                    "id": 3,
                    "title": "Post 3"
                }
            ],
            "profile": {
                "name": ""
            },
            "nulldata": {
                "res": null
            }
        }

enter image description here

  1. Не уверен, почему RSpec::ExampleGroups::EmptyContentValidation генерируется при компиляции приведенного выше фрагмента json
  2. Как избавиться от этого сообщения об ошибке (или отключить эту ошибку, которая не имеет значения)

1 Ответ

2 голосов
/ 21 октября 2019

Это не JSON, это хэш Ruby. И в Ruby нет null, вместо этого вы используете nil. Вы можете подтвердить все это, вставив в свой REPL:

actual =
        {
            "posts": [
                {
                    "id": 3,
                    "title": "Post 3"
                }
            ],
            "profile": {
                "name": ""
            },
            "nulldata": {
                "res": null
            }
        }

Это вернет:

NameError: undefined local variable or method `null' for main:Object

Теперь измените его на nil:

actual =
        {
            "posts": [
                {
                    "id": 3,
                    "title": "Post 3"
                }
            ],
            "profile": {
                "name": ""
            },
            "nulldata": {
                "res": nil
            }
        }

Это вернет:

=> {
       :posts => [
        [0] {
               :id => 3,
            :title => "Post 3"
        }
    ],
     :profile => {
        :name => ""
    },
    :nulldata => {
        :res => nil
    }
}

И вы даже можете подтвердить, что это не JSON (то есть String), а вместо этого Hash:

actual.class
=> Hash < Object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...