- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
正如我多次看到的那样,一个自执行的匿名函数用于包含整个库。如何测试这些库,例如QUnit 无法访问匿名函数包装器内的任何内容?
最佳答案
我同意你不想执行 Backdoor Manipulation通过寻找偷偷摸摸的方法来离散地测试私有(private)方法。
但是,正如您所指出的,无数的 Web 应用程序被编写成一个巨大的自执行泥球,缺乏任何命名或公共(public) API。这是一个完全不同的问题,在许多其他技术堆栈中不太可能遇到。
TDD 为网络编写 JavaScript 的巨大值(value)之一是它迫使您编写至少可供两方使用的 JavaScript:您的网络应用程序 + 您的单元测试。
我和 Jasmine 玩过几次这个传统的救援游戏:
如果未命名,则将每个功能 block 包装在一个自执行的命名方法中
Characterize那些具有功能的方法 Jasmine眼镜。我喜欢 Jasmine 有很多原因,但它确实在遗留救援中击败了 qunit,因为它能够嵌套示例组。例如,每当我描述的代码有一个匿名函数时,通常可以使用嵌套示例组来离散地描述该嵌套函数的行为,方法是用 spy 捕获它并在不同的上下文中调用它。
一旦你是新手,就开始重构为小的、命名良好、组织良好的方法/命名空间
编写隔离测试来表征这些单元
吃个三明治,想想那些功能测试是否仍然有值(value)(如果你没有任何全栈测试,它们可能是有值(value)的;如果你已经有很好的全栈测试,它可能太多余了,无法保证维护他们)。因为我通常用Cucumber来驱动开发/Capybara ,我认为使用 Jasmine 编写集成测试没有多大值(value)。
关于javascript - 如果包裹在自执行的匿名函数中,JavaScript 可以是 "unit testable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7092626/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!