javascript - Jasmine - 替换函数中的变量?

标签 javascript unit-testing tdd jasmine

当内部变量等于不同的东西时,我需要测试函数

Function() {
  var test = "to be changed"
  return stuffHapennedToTestVariable

}

我需要将测试变量值更改为多个字符串来测试返回的结果。

最佳答案

你不能像你的例子中的函数那样工作。有IOC or dependency injection的图案。这个想法是注入(inject)对象/函数的依赖项,而不是在对象/函数中创建新实例。因此,在您的情况下,拥有一个变量并将其设置为字符串与创建新实例是一样的。因此,使用不同字符串测试它的唯一方法是将字符串传递到函数中:

function functionTotest(test) {
  return stuffHapennedToTestVariable
}

var result = functionTotest( "to be changed")
expect(result).toBe("expected result")

关于javascript - Jasmine - 替换函数中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458707/

相关文章:

JavaScript - 使用纯 JavaScript 切换 CSS 颜色?

javascript - 如何将字符串中的 <br> 解析为 VUE.js 中的 html 标记

c# - 在不调用 Add 方法的情况下测试 Remove 方法

java - 针对现有注入(inject)器测试注入(inject)类的方法

asp.net-mvc-3 - 测试 RazorViewEngine View 的输出

ruby-on-rails - Rspec:验证失败:名称已被占用

javascript - 如何在匿名函数/闭包中动态访问变量?

javascript - Bootstrap 轮播不工作 : stack images (using rails)

java - 在Junit4中,如何基于@Test注释更改@Before行为

unit-testing - 单元测试时 "unit"应该是什么?