【问题标题】:How should I test my objects in against each other?我应该如何测试我的对象?
【发布时间】:2017-02-20 21:22:10
【问题描述】:

我正在创建现有的每个数据结构,并且正在运行 quint 测试。我测试了构造函数,确保最初长度为零并且顶点为空,但测试 push .....我应该去

var stack = new Stack()
var testStack = new Stack()
stack.push(22)
testStack.push(22)

然后断言它们在深度上是相等的?

或者断言栈的深度是否等于 {Stack: top= Node...etc} 手动写出应该是什么?

【问题讨论】:

  • 那会测试什么?当你调用它两次时,相同的代码会做同样的事情吗?也许是一个很好的测试,取决于函数的作用,但不是很有价值。所有单元测试都应该测试被测代码是否完成了它应该做的事情。换句话说,push 的测试应该测试推送的值是否在数据结构中。因为我不知道你的push 方法是做什么的,所以我只能说。
  • 好的。所以断言(stack.top.data,22)
  • 现在唯一的问题是,在 javascript 中,我试图在操作后测试堆栈的前后长度值,但它们具有相同的值,即使堆栈操作有效
  • 看来你想做的是var stack = new Stack(); var before = stack.length; stack.push(22); var after = stack.length; assert(after - before, 1);

标签: javascript unit-testing data-structures


【解决方案1】:

我建议您进行一些在线研究,以对您正在构建的结构进行单元测试。例如,这里有一个关于测试堆栈的建议:

  • 创建一个空堆栈。测试其大小为 0。
  • 将元素压入堆栈。测试它的大小现在是 1。
  • 将另一个元素压入堆栈。测试它的大小现在是 2。
  • 从堆栈中弹出一个元素。测试它是否匹配第二次推送 价值。检查堆栈的大小现在是否为 1。
  • 从堆栈中弹出一个元素。测试它是否匹配第一个推送 价值。检查堆栈的大小是否为 0。
  • 尝试在堆栈为空时从堆栈中弹出一个元素。 [没有把握 在这种情况下你期望做什么。]

这是taken from here,但还有许多其他网站可以帮助指导您。

【讨论】:

  • 谢谢,我现在正在这样做。我知道我在楼上说的没有道理
  • 对于什么是好的单元测试以及什么是相当无意义的,开发一种“直觉”确实需要一段时间。坚持下去,这是一项很好的发展技能!
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
相关资源
最近更新 更多