我在官方网站上有以下角度文档。但在文档测试中,部分已过时,无法使用当前的角度2 beta版本。我需要编写一个基本测试来检查if条件是否正常工作。我怎么能用角度2中的茉莉花做到这一点。
答案 0 :(得分:9)
设置jasmine以使用angular2(beta.7)运行typescript单元测试:
设置Angular-Project
(见说明5 Min Quickstart
https://angular.io/guide/quickstart)
Rootdir是myproject
用mpm安装jasmine
npm install jasmine-core --save-dev --save-exact
安装live-server
https://www.npmjs.com/package/live-server
获取语法/智能感知支持:
在myproject / typings中创建一个新文件jasmine.d.ts
/// <reference path="jasmine\jasmine.d.ts" />
从中获取jasmine.d.ts https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/jasmine/jasmine.d.ts
并将其保存在myproject \ typings \ jasmine中作为文件jasmine.d.ts
在myproject中保存unit-test.html
<html>
<head>
<title>Angular2: Jasmine Tests</title>
<link rel="stylesheet" href="../node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
<script src="../node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script src="../node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
<script src="../node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
</head>
<body>
<!-- #1. add the system.js library -->
<script src="../node_modules/systemjs/dist/system.src.js"></script>
<script>
// #2. Configure SystemJS to use the .js extension
// for imports from the app folder
System.config({
packages: {
'app': {defaultExtension: 'js'}
}
});
// #3. Import the spec file explicitly
System.import('app/app.spec')
// #4. wait for all imports to load ...
// then re-execute `window.onload` which
// triggers the Jasmine test-runner start
// or explain what went wrong
.then(window.onload)
.catch(console.error.bind(console));
</script>
</body>
</html>
.then(window.onload)对于开始测试非常重要。
请参阅此处Wait for a module to be loaded to execute the tests it contains
在dir myproject \ app
中创建新文件app.spec.tsimport {AppComponent} from './app.component';
// Jasmin Test App title property
describe('AppComponent', () => {
var app: AppComponent = null
beforeEach(() => {
app = new AppComponent();
app.title = "App in Test";
});
it('should have an title property', () => {
expect(app.title).toBeDefined();
});
it('should have the title App in Test', () => {
expect(app.title).toBe("App in Test");
})
});
// Jasmin Test without Angular
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
从cmdline开始
live-server --open=unit-test.html
这是我用Angular 2编写的带有Jasmine的单元测试的工作设置。
如果您有任何错误,请发布您尝试过的内容以及Günther在评论中提出的失败位置。
答案 1 :(得分:0)
I found this to be a good guide for angular testing
它缺少以下命令:
typings install jasmine --save-dev --ambient
答案 2 :(得分:0)
现在,角度有关于角度2单位测试和使用茉莉和业力的端到端测试的良好文档。它用例子解释它,非常容易理解和遵循。