Испытание RSPEC на выходе парсера Treetop не соответствует, когда он должен

StackOverflow https://stackoverflow.com/questions/3444597

  •  27-09-2019
  •  | 
  •  

Вопрос

У меня есть этот спектр:

it 'can parse armies with only section headers' do
  list = <<-LIST
  :Core
  :Special
  :Omgg
  :Moarheaders
  LIST
  expected_output = "## Core\n## Special\n## Omgg\n## Moarheaders\n"
  parsed = @parser.parse(list)
  parsed.should_not be_nil
  parsed.transform.should be expected_output
end

Который производит этот вывод:

expected ## Core
## Special
## Omgg
## Moarheaders
, got "## Core\n## Special\n## Omgg\n## Moarheaders\n"

Если я удалю двойные кавычки, я получаю этот вывод:

expected ## Core\n## Special\n## Omgg\n## Moarheaders\n, 
got     "## Core\n## Special\n## Omgg\n## Moarheaders\n"

Если я добавлю цитаты на мой ожидаемый_output, я получаю это :(expected_output = '"## Core\n## Special\n## Omgg\n## Moarheaders\n"')

expected "## Core\n## Special\n## Omgg\n## Moarheaders\n", 
got      "## Core\n## Special\n## Omgg\n## Moarheaders\n"

Что тут происходит?

Я не могу получить результат Treetop, чтобы оценить n как новички, и я не могу получить ожидаемое значение, чтобы соответствовать, независимо от того, что я пытаюсь.

Я запутался.

Это было полезно?

Решение

Ты пробовал:

parsed.transform.should == expected_output

be может использовать идентичность объекта вместо сравнения строковых значений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top