使用Jasmine跨文件到达AngularJS函数

时间:2014-11-19 20:41:12

标签: javascript c# angularjs unit-testing jasmine

所以我正在学习Jasmine,我正在尝试将它应用于一个非常大的项目,以测试一些Angular JS方法。我有一个Jasmine测试文件,它向我展示了测试的结果,但是它只会在同一个JS测试文件中运行/到达方法。我想要做的是访问其他文件中的方法(我的C#解决方案的不同位置),我不知道如何做到这一点。

现在我只是使用以下作为示例函数(helloWorld)和test(describe)。

//method to test
function helloWorld() {
    return "Hello world!";
}

//actual test
describe("Hello world", function () {
    it("says hello", function () {
        expect("/app/views/dashboard/clientQuoteView.html/"+helloWorld()).toEqual("Hello world!");
    });
});

我正在尝试将helloWorld()放在另一个文件中,并将结果传回我的describe()语句。我该怎么做或正确指向我的方法?

让我说我的茉莉花测试文件(描述方法)的途径是ProjectName/app/tests/jasminetests.js,我将helloWorld()函数粘贴在途径ProjectName/app/services/calculate.js

以下是茉莉花页面的示例,它目前显示6个中的5个(5个在js测试文件中,而第6个是试图在不同文件中查找并运行helloWorld方法的测试)。 第6次测试不是错误,因为找不到helloWorld方法。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将helloworld方法包装在Angular服务中并将其注入测试中。这样,它可以从任何测试或文件中获得。

以下是创建服务后如何注入它的快速示例:

http://www.syntaxsuccess.com/viewarticle/how-to-inject-angular-dependencies-in-jasmine-unit-tests

我们的想法是您使用angular注册服务,并且只依赖于角度依赖注入。