【问题标题】:How to test a function that returns an array of objects whose elements contain javascript Date objects?如何测试返回对象数组的函数,该数组的元素包含javascript Date 对象?
【发布时间】:2019-01-11 08:16:36
【问题描述】:
obj= {
  "element-id": 0,
  "measurement": [{
    "from": "2018-10-17T13:40:00Z",
    "to": "2018-10-17T13:45:00Z",
    "value": [{
      "value": 9,
      "label": "fw"
    }, {
      "value": 7,
      "label": "bw"
    }]
  }, {
    "from": "2018-10-17T13:45:00Z",
    "to": "2018-10-17T13:50:00Z",
    "value": [{
      "value": 6,
      "label": "fw"
    }, {
      "value": 8,
      "label": "bw"
    }]
  }]
};

var res = foo(obj);

-- Expected res output:
[ { address: 0,
    datetime: 2018-10-17T13:45:00.000Z, <- this is a javascript Date object
    day: '2018-10-17',
    In: 9,
    Out: 7 },
  { address: 0,
    datetime: 2018-10-17T13:50:00.000Z, <- this is a javascript Date object
    day: '2018-10-17',
    In: 6,
    Out: 8 }]

函数foo 应该将对象obj 转换为另一个对象。生成的res 对象应该是一个数组,其元素的结构都相同,并且所有元素都应该包含一个Date 对象。我该如何测试?

【问题讨论】:

  • 你想如何实现日期和日期时间?获取day: '2018-10-17',背后的逻辑是什么?
  • day 是一个字符串,它是一个“临时”属性,将在下一步中用于对与同一天关联的所有元素进行分组。它将在下一步中删除。 Datetime 是记录的实际日期时间。
  • 请检查答案。

标签: node.js unit-testing chai


【解决方案1】:

这是我从您的帖子和评论中了解到的。如果有任何错误,请导航我。

obj= {
  "element-id": 0,
  "measurement": [{
    "from": "2018-10-17T13:40:00Z",
    "to": "2018-10-17T13:45:00Z",
    "value": [{
      "value": 9,
      "label": "fw"
    }, {
      "value": 7,
      "label": "bw"
    }]
  }, {
    "from": "2018-10-17T13:45:00Z",
    "to": "2018-10-17T13:50:00Z",
    "value": [{
      "value": 6,
      "label": "fw"
    }, {
      "value": 8,
      "label": "bw"
    }]
  }]
};

let arr = [obj]
let foo = []
arr[0].measurement.map(data => {
	let d = new Date()
	foo.push({
		address: 0,
		datetime: d.toISOString(),
		day: d.toISOString().slice(0,10),
		in: data.value.filter(v => v.label == "fw")[0].value,
		out: data.value.filter(v => v.label == "bw")[0].value
		
	})
})
console.log(foo)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多