我刚开始使用YUI3测试模块(http://yuilibrary.com/yui/docs/test/)。
我有许多断言验证状态的测试用例。如果其中一个断言失败,则TestConsole指示断言失败,但不指示测试中的多个断言中的哪一个失败。让失败消息报告行号会很棒。
浏览器异常实际上包含JS失败行号,但是YUI3 Test类过滤掉它并抛出它自己的异常,它似乎不包含行号。是否有一种简单的方法来添加此报告,同时仍然利用YUI3 Test类作为线束?
答案 0 :(得分:0)
YUI3没有提供任何显示失败测试的行号的内在方法。我想可以操纵错误构造函数,以便你可以查询它们;但是,问题是Error.lineNumber仅在某些浏览器中受支持(我相信它只是Mozilla)。
即使这确实有效,你最终也会意识到这有点令人费解。你必须始终确保这样做:
throw new Error*(...);
在您的通话代码中,您必须始终执行以下操作:
try {...} catch(e) { /* e.lineNumber */ }
即使这一切都奏效并且您愿意这样做,我也不会推荐它。
问题的根源在于您的测试方法中似乎有多个Assert。试图务实的开发人员有时会告诉你“每个测试方法的一个断言”是不合理和教条的。认为每种测试方法的多个断言都很好是非常有吸引力的......直到它没有。
我确信有时多个断言更好,但我还没有看到它。我已经进行了多年的测试,这是我发现的:
读: