El ejemplo dado por UI5 de probar las funciones del formateador, es decir
// 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"); Funciona muy bien, sin embargo, la misma prueba aplicada a las funciones de un archivo de controlador, es decir, Example.controller.js , produce un error .
Al intentar probar la _onTestFunction de Example.controller , aparece el siguiente error :
TypeError: Example._onTestFunction is not a function Pregunta : ¿Cómo pruebo las funciones de un archivo de controlador que no es formatter ?
Para probar un controlador, debe crear una instancia de uno: let controllerUnderTest = new Controller(...) . Si el controlador tiene dependencias (como suele ser el caso), estas dependencias deben simularse. Para ello, utilice un marco como sinon . Luego puede especificar en cada prueba cómo deben comportarse estos simulacros. Una vez que haya creado una instancia del controlador, puede ejecutar un método y agregar aserciones. En su caso, parece que está intentando llamar a _onTestFunction no en un objeto, sino en la "definición" del controlador. Esto no contiene el método, como se esperaba, y da como resultado el error.