Определение контроллеров requirejs в тесте jasmine с неопределенным значением - PullRequest
0 голосов
/ 30 января 2019

У меня есть требуемый файл контроллера, который определяет Магистральные Модели и Представления в своей структуре, а затем с каждой другой функциональностью модели он вызывает соответствующий вызов Rest Web Service.Ниже приведена структура моего контроллера: -

define([ 'core/libs', 'modules/test/mapping/models/TestModel' ], function(libs, TestModel) {

var testModel = TestModel.testModel;

testModel.on("executeSimulatorButton", function() {
    $("#simulatorMessage").html("Executing simulator ...");
    testModel.get("executeSimulator").set("endDate", $("#datepickerReportingEnd").datepicker().val());
    testModel.get("executeSimulator").set("startDate",$("#datepickerReportingStart").datepicker().val());
    testModel.get("executeSimulator").invokeGet();
});

testModel.get("executeSimulator").on("update", function() {
    $("#simulatorMessage").html(testModel.get("executeSimulator").get("value"));
});

testModel.on("truncateSimulatorButton", function() {
    $("#simulatorMessage").html("Truncating simulator results...");
    testModel.get("truncateSimulator").invokePost();
});

testModel.get("truncateSimulator").on("update", function() {
    $("#simulatorMessage").html(testModel.get("truncateSimulator").get("value"));
});});

И в моем файле спецификации Jasmine я включаю контроллер, как это -

define(
    [ 'modules/test/mapping/controllers/TestController','modules/test/mapping/models/TestModel'],
    function(controller,TestModel) {

        describe("TestController :", function() {
            it("should create an test instance", function() {
                                    console.log("testcontroller: " + controller);
                                    expect(controller).not.toBe(null);
            });
        });

        describe("TestController :", function() {
            it("should test testModel instance", function() {
                var testModel=TestModel.testModel;
                expect(testModel.on("executeSimulatorButton",jasmine.any(Function))).toBeDefined();
            });
        });

    });

Приведенный выше код не выдает никакой ошибки, ночасть executeSimulatorButton не покрывается контроллером.Я не могу напрямую использовать переменную контроллера в своем тесте с жасмином, потому что console.log печатает undefined вместо [Object object].Я нашел много решений относительно AngularJS, но так как я не использую Angular, я не знаю, как проверить контроллер.Как проверить и получить покрытие кода для контроллеров этого типа с использованием жасмина?

...