QUnit - formatter.js 之外的文件测试功能

QUnit - Testing functions of files besides formatter.js

UI5给出的测试格式化函数的例子,即

// Assert
assert.strictEqual(fnIsolatedFormatter("A"), "New", "The long text for status A is correct");
assert.strictEqual(fnIsolatedFormatter("B"), "In Progress", "The long text for status B is correct");
assert.strictEqual(fnIsolatedFormatter("C"), "Done", "The long text for status C is correct");
assert.strictEqual(fnIsolatedFormatter("Foo"), "Foo", "The long text for status Foo is correct");

效果很好,但是,将相同的测试应用于控制器文件的功能,即 Example.controller.js,会产生 error

通过尝试测试 Example.controller_onTestFunction,我确实得到了以下 error

TypeError: Example._onTestFunction is not a function

问题:我如何测试不是 formatter 的控制器文件的功能?

要测试控制器,您需要实例化一个: let controllerUnderTest = new Controller(...)。如果 Controller 有任何依赖关系(通常是这种情况),则需要模拟这些依赖关系。为此,请使用 sinon 等框架。然后您可以在每个测试中指定这些模拟的行为方式。实例化控制器后,您可以执行方法并添加断言。 在你的情况下,看起来你试图调用 _onTestFunction 不是在对象上,而是在控制器的“定义”上。这不包含预期的方法,并导致错误。