javascript - 如何在 Mocha 测试中设置变量

标签 javascript coffeescript mocha.js

我无法理解如何设置用于我的测试的变量。例如,我有一个名为 spark.isTriple() 的函数,它接受一个数字并查看一个名为 dice 的数组,如果该值出现三次或更多次则返回 true,否则返回 false。

#In game.coffee

window.spark =  
  isTriple: (n)->        
    triples = _.filter dice, (i)->
      n is i
    if triples.length >= 3
      true
    else
      false

我有一个看起来像这样的测试。

# In game_spec.coffee

describe 'spark.isTriple', ->
  it "Should return true if the given value is found 3 or more times in the dice roll", ->
    dice = [1,2,2,2,4,5]
    spark.isTriple(2).should.be.true

问题是“骰子”也在早期测试中设置,该测试实际上是在测试 rollDice() 函数。在该测试中,骰子被设置为一个随机值数组,这是它应该做的和测试的。但是对于这个特定的测试,我希望能够将“骰子”设置为特定的数组,以便测试我的 isTriple() 函数。我试过在 before() 调用和 beforeEach() 调用中放置“dice = [1,2,2,2,3,4]”,但它似乎没有任何区别。

如果有人能给我一些帮助或指导,我将不胜感激。

最佳答案

因此,如果您想要一个整个测试套件都可以使用并且可以在 before/beforeEach/after/afterEach 期间操作的变量,那么 mocha + coffeescript 有时需要在正确的范围内显式声明。

describe 'spark.isTriple', ->
  dice = null #force coffeescript var declaration
  it "should blah blah", ->
    dice = [1,2,2,2,4,5]

我很确定按照这些思路可以解决您的问题,但如果您发布一个完整的文件来演示该问题,我可以确定。

关于javascript - 如何在 Mocha 测试中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085917/

相关文章:

javascript - 在 javascript 和 SyntaxError 中按字符串函数

javascript - CoffeeScript:使用对象作为参数

javascript - Coffeescript:使用 coffeescript 的 moment js 动态更新时间

node.js - Nodejs/Express API 的简单 Mocha/Chai 测试

node.js - 有没有一种好方法可以在每次运行后打印时间 `mocha -w` ?

javascript - 使用字符串函数查找周期字符串

javascript - (已关闭)单击按钮时,如何获取第一个表行中的输入值并将其显示在新添加的行中

javascript - 标签问题的 URL 结构

javascript - 在 CoffeeScript 中使用数组

javascript - Sails.js:如何实际运行测试