由于JSON

时间:2017-10-12 18:47:49

标签: reactjs jest

我有这个测试:

it('Outputs correct ES6 code', () => {

  const updateCodeGenerationOptions = actions.updateSourceCode(sampleJson)
  expect(jsonCodeTools(undefined, updateCodeGenerationOptions))
    .toEqual(
      {
        'options': {'outputCodeType': 'ES6'},
        'outputCodeFromJSON': '<pre>export class Foo {<br>  constructor (object) {<br>    this.shouldBeNumber1 = object.shouldBeNumber1; <br>    this.shouldBeString1 = object.shouldBeString1; <br>    this.shouldBeBoolean1 = object.shouldBeBoolean1; <br>    this.shouldBeFragment1 = new shouldBeFragment1(object.shouldBeFragment1); <br>  } <br>}<br>export class  shouldBeFragment1{<br>  constructor (object) {<br>    this.FshouldBeNumber1 = object.FshouldBeNumber1; <br>    this.FshouldBeString1 = object.FshouldBeString1; <br>    this.FshouldBeBoolean1 = object.FshouldBeBoolean1; <br>  } <br>}<br></pre>',
        'sourceCode': JSON.stringify({
          'shouldBeNumber1': '1',
          'shouldBe String1': '.1',
          'shouldBeBoolean1': 'false',
          'shouldBeFragment1': {
            'FshouldBeNumber1': '1',
            'FshouldBeString1': 'bar',
            'FshouldBeBoolean1': 'false'
          }
        })
      }
    )
})

当它运行时,它会失败:

enter image description here

所以对我而言,这只是一个格式化问题,我将如何通过这项测试?

1 个答案:

答案 0 :(得分:0)

您确实存在格式问题,但无论如何您的测试确实没有通过。看看shouldBeFragment1;期望值为false,但实际值为对象。

对于格式化问题,您应该JSON.parse,然后JSON.stringify实际输出,以便它不是漂亮的打印(或者更好的是从被测单元中删除漂亮的打印)。