테스트에 사용할 변수를 설정하는 방법을 이해하는 데 문제가 있습니다. 예를 들어 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() 함수를 테스트하기 위해 특정 배열에 '주사위'를 설정할 수 있기를 원합니다. 나는 "주사위 = [1,2,2,2,3,4]"를 before() 호출과 beforeEach() 호출에 배치하려했지만 아무런 차이가없는 것 같습니다.
누구든지 나에게 도움이나 조언을 주면 많은 도움이 될 것입니다.
나는 계속 전진 해 결국 어쨌든 isTriple에 주사위 배열을 직접 전달해야한다는 것을 알게되었습니다. 피터스의 대답이 효과가 있었는지 아닌지에 대해서는 확신 할 수 없지만, 여기서 말하는 내용에 동의한다고 생각합니다. 이것은 일컬어 더 안전한 청소기를 느낀다. 감사합니다. – Inkspeck
@Inkspeck 도와 주셔서 감사합니다. – jcollum
@jcollum은 일반적으로 동의하지만 beforeEach에서 공유 변수를 구성한 다음 해당 공유 변수의 각 측면에 대해 별도의 테스트를 수행하는 것이 일반적이며 깨끗합니다 (IMHO). 그것은'describe' 블록에 대해 상수가 아닌 변수를 갖는 유일한 시간입니다. –