我已经学会了如何在Jasmine中为使用Yeoman创建的Backbone应用程序编写测试。但是,我在json文件中有我的测试数据。我想使用模型提取加载JSON,但是当我因为URI错误而在本地打开文件时它不起作用。
我想知道如何在grunt服务器中加载生成的spec运行器,以便请求能够正常工作?
另一个问题是,当PhantomJS中的测试实际运行时,它是在localhost上运行还是只是打开它就好像在文件系统上打开一个文件一样?
你们通常如何编写测试?我一直在编写一些测试代码然后运行grunt测试。如果测试失败,我在Firefox中打开_Specrunner.html并进行检查。这非常繁琐,我觉得必须有更好的方法来做到这一点。
答案 0 :(得分:1)
你的问题实际上更像是三个,但我可以回答第三个问题。我一直在做的是使用testem非常有用;只需让Chrome访问一个不断在后台运行测试的网址,以确保一切正常。如果没有,CLI会通知您(或标题栏中的计数器)修复损坏的代码。
我的testem.yml配置如下所示:
framework: jasmine
test_page: lib/testRunner.html
然后我坚持我的specrunner,这样每次我想测试一些东西时我都不需要重建一个新的:
<!doctype html>
<html>
<head>
<title>Test'em</title>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="/testem/jasmine.js"></script>
<script src="vendor/jasmine-jquery/lib/jasmine-jquery.js"></script>
<script src="/testem.js"></script>
<script src="/testem/jasmine-html.js"></script>
<link rel="stylesheet" href="/testem/jasmine.css">
</head>
<body>
<div id="jasmine_content"></div>
<script src="vendor/requirejs/require.js"></script>
<script>
// require config stripped out for brevity
require(['specs'], function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.addReporter(new jasmine.HtmlReporter);
jasmineEnv.execute();
});
</script>
</body>
</html>
我一直在使用它来测试使用RequireJS在Backbone中编写的应用程序,并且测试运行器非常强大。我建议你试一试。