Javascript 我应该如何测试我的对象,使其相互对抗?

Javascript 我应该如何测试我的对象,使其相互对抗?,javascript,unit-testing,data-structures,Javascript,Unit Testing,Data Structures,我正在创建现有的所有数据结构,并运行quint测试。我测试了构造器,确保最初的长度为零,顶点为空,但测试推送…我应该去吗 var stack = new Stack() var testStack = new Stack() stack.push(22) testStack.push(22) 然后断言他们两个都是平等的 或者断言堆栈深度是否等于{stack:top=Node…etc}手动写出它应该是什么?我建议做一些在线研究,对正在构建的结构进行单元测试。例如,下面是测试堆栈的建议片段: 创

我正在创建现有的所有数据结构,并运行quint测试。我测试了构造器,确保最初的长度为零,顶点为空,但测试推送…我应该去吗

var stack = new Stack()
var testStack = new Stack()
stack.push(22)
testStack.push(22)
然后断言他们两个都是平等的


或者断言堆栈深度是否等于{stack:top=Node…etc}手动写出它应该是什么?

我建议做一些在线研究,对正在构建的结构进行单元测试。例如,下面是测试堆栈的建议片段:

  • 创建一个空堆栈。测试其大小是否为0
  • 将元素推到堆栈上。测试其大小现在是否为1
  • 将另一个元素推到堆栈上。测试其大小现在是否为2
  • 从堆栈中弹出一个元素。测试它是否与第二个按钮匹配 价值检查堆栈的大小现在是否为1
  • 从堆栈中弹出一个元素。测试它是否与第一个按钮匹配 价值检查堆栈的大小是否为0
  • 当元素为空时,尝试从堆栈中弹出该元素。[不确定 在这种情况下,您希望做什么。]

这是一个很好的测试,但还有许多其他网站可以帮助您进行指导。

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