2017-02-20 101 views
0

我正在创建每个数据结构现在,我正在运行quint测试。我测试确保建设者最初长度为零,最高点为null,但在测试推.....我应该去我应该如何测试我的对象?

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

则声称他们都等于深?

或断言堆栈是否深等于{Stack:top = Node ... etc}写出它应该手动执行的操作?

+0

那会测试什么?当你调用它两次时,相同的代码会执行相同的操作吗?也许是一个很好的测试,取决于功能是什么,但不是很有价值。所有的单元测试都应该测试被测试的代码是否符合要求。换句话说,'push'测试应该测试推送的值是否在数据结构中。因为我不知道你的“推”方法做什么,这就是我所能说的。 –

+0

好的。所以assert(stack.top.data,22) – RubyisWeird

+0

现在唯一的问题是,在JavaScript中我试图测试操作后堆栈的前后长度值,但它们具有相同的值,即使堆栈操作工作 – RubyisWeird

回答

0

我会建议做一些在线研究,为单位测试你正在建造的结构。例如,以下是测试堆栈的一些建议:

  • 创建一个空堆栈。测试其大小为0.
  • 将元素推入堆栈。测试其大小现在为1.
  • 将另一个元素推入堆栈。测试其大小现在为2.
  • 从堆栈中弹出一个元素。测试它匹配第二个推动的 值。检查堆栈的大小是否为1.
  • 从堆栈中弹出一个元素。测试它与第1个推动的 值相匹配。检查堆栈的大小是否为0.
  • 尝试在堆栈中的元素为空时弹出元素。 [不知道 你期望在这种情况下该怎么做。]

这是taken from here,但也有许多其他网站,这将有助于引导你。

+0

谢谢,我现在正在做这个。我知道啊我说楼上没有意义 – RubyisWeird

+0

对于什么是单元测试,什么是毫无意义的,它需要一段时间才能形成“直觉”。坚持下去,这是一项很棒的技能! – rasmeister