如何在Jasmine.js 2.0.0版本中使用fixture
How to use fixtures in Jasmine.js version 2.0.0?
fixture在jasmine.js 1.3.1版本中为我的测试套件工作良好。将Jasmine.js版本升级到2.0.0后,fixture无法正常工作
谁能解释,如何使我的代码在茉莉花.js 2.0.0版本的固定装置工作?
我已经检查了这个茉莉花v2.0.0版本说明,但没有与fixture相关:https://github.com/pivotal/jasmine/blob/v2.0.0/release_notes/20.md
下面的完整脚本可以很好地加载fixture来测试您的html片段。
我已经引用了这个url,这个url帮助我加载fixture:http://www.htmlgoodies.com/beyond/javascript/js-ref/testing-dom-events-using-jquery-and-jasmine-2.0.html
在Jasmine.js v2.0.0 中,你必须检查一些Jasmine.js框架语法。<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Jasmine v2.0 DOM Tests Spec Runner</title>
<link rel="shortcut icon" type="image/png" href="images/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="lib/jasmine-core/jasmine.css">
<script type="text/javascript" src="lib/jasmine-core/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-core/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-core/boot.js"></script>
<script type="text/javascript" src="lib/jasmine-core/jquery-1.7.2.js"></script>
<script type="text/javascript" src="lib/jasmine-core/jasmine-jquery.js"></script>
<script type="text/javascript">
var MSG = "Hello World!";
function hideMessage() {
$( "#pMsg" ).html("");
}
function showMessage() {
$( "#pMsg" ).html(MSG);
}
function setUpHTMLFixture() {
setFixtures('<form id="testForm" action="">'
+' <h1>Test Form</h1>'
+' <input type="text" id="txtMessage">'
+' <br>'
+' <button id="btnHideMessage" type="button" onclick="hideMessage()">Hide Message</button>'
+' <button id="btnShowMessage" type="button" onclick="showMessage()">Show Message</button>'
+' <br>'
+' <p id="pMsg"></p>'
+'</form>');
}
describe("DOM TESTS:***************", function() {
describe("Button Click Event Tests", function() {
var spyEvent;
beforeEach(function() {
setUpHTMLFixture();
});
it ("should invoke the btnShowMessage click event.", function() {
spyEvent = spyOnEvent('#btnShowMessage', 'click');
$('#btnShowMessage').trigger( "click" );
expect('click').toHaveBeenTriggeredOn('#btnShowMessage');
expect(spyEvent).toHaveBeenTriggered();
});
it ("should invoke the btnHideMessage click event.", function() {
spyEvent = spyOnEvent('#btnHideMessage', 'click');
$('#btnHideMessage').trigger( "click" );
expect('click').toHaveBeenTriggeredOn('#btnHideMessage');
expect(spyEvent).toHaveBeenTriggered();
});
});
describe("Show message tests", function() {
beforeEach(function() {
setUpHTMLFixture();
$('#txtMessage').val(MSG);
$('#btnShowMessage').trigger( "click" );
});
it ("should display the message when button is clicked.", function() {
expect($('#pMsg')).toHaveText($('#txtMessage').val());
});
});
describe("Hide message tests", function() {
beforeEach(function() {
setUpHTMLFixture();
$('#pMsg').text(MSG);
$('#btnHideMessage').trigger( "click" );
});
it ("should remove the message when button is clicked.", function() {
expect($('#pMsg')).toHaveText("");
});
});
});
</script>
</head>
<body>
</body>
</html>
相关文章:
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Chrome加载旧版本的Javascript文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何设置jsfiddle's的javascript版本
- 同一HTML页面中的两个不同版本的JQuery
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 有没有一种方法可以获得three.js的最小/lite版本
- Node和Nodejs版本不同
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 如何在HTML中指定Javascript的版本
- 注册组件的非角度和角度版本
- 浏览器是否持久缓存脚本元素的编译版本
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- 如何在IE8及以前版本中处理mousemove
- 从自身的一个版本中创建新的JavaScript对象
- PhpWindows 8.1版本上的Javascript web应用程序
- javascript网格未在IE 8及以上版本中显示
- 如何在Jasmine.js 2.0.0版本中使用fixture