Add spec reporter; Add BlogEntry delete button funct test
parent
155881ad0f
commit
d40cf1f01e
|
@ -18,10 +18,16 @@ module.exports = function(config) {
|
|||
plugins: [
|
||||
require('karma-jasmine'),
|
||||
require('karma-chrome-launcher'),
|
||||
require('karma-spec-reporter'),
|
||||
require('@angular/cli/plugins/karma')
|
||||
],
|
||||
|
||||
|
||||
client:{
|
||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||
},
|
||||
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'./src/test.ts'
|
||||
|
@ -50,7 +56,7 @@ module.exports = function(config) {
|
|||
// test results reporter to use
|
||||
// possible values: 'dots', 'progress'
|
||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||
reporters: ['progress'],
|
||||
reporters: ['spec'],
|
||||
|
||||
|
||||
// web server port
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
import {TestBed} from "@angular/core/testing";
|
||||
import {BlogEntryComponent} from "./blog-entry.component";
|
||||
import {BlogEntry} from "./blog-entry";
|
||||
import {BlogComponent} from "../blog.component";
|
||||
import {RouterTestingModule} from "@angular/router/testing";
|
||||
|
||||
describe('Blog Entry Isolated Test', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
it('should render DOM correctly according to Input', () => {
|
||||
// Umgebung initialisieren
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [BlogEntryComponent],
|
||||
})
|
||||
});
|
||||
|
||||
it('should render DOM correct according to Input', () => {
|
||||
// Umgebung initialisieren
|
||||
});
|
||||
const fixture = TestBed.createComponent(BlogEntryComponent);
|
||||
const blogEntryComponent : BlogEntryComponent = fixture.componentInstance;
|
||||
const element = fixture.nativeElement;
|
||||
|
@ -40,8 +39,8 @@ describe('Blog Entry Isolated Test', () => {
|
|||
|
||||
// textContent statt innerHtml
|
||||
// siehe http://stackoverflow.com/questions/40227533/angular-2-and-jasmine-unit-testing-cannot-get-the-innerhtml
|
||||
const blogTitle = element.querySelector('div /deep/ .blog-summary > span');
|
||||
expect(blogTitle.textContent).toBe(testTitle);
|
||||
const blogTitle = element.querySelector('div /deep/ .blog-summary > span').textContent;
|
||||
expect(blogTitle).toBe(testTitle);
|
||||
|
||||
const blogText = element.querySelector('div /deep/ .blog-summary > p').textContent;
|
||||
expect(blogText).toBe(testText);
|
||||
|
@ -58,3 +57,28 @@ describe('Blog Entry Isolated Test', () => {
|
|||
});
|
||||
|
||||
});
|
||||
|
||||
describe('BlogEntryComp -> BlogComp Relational Test', () => {
|
||||
|
||||
it ('should remove entry from BlogComponent on "delete" button click', () => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [RouterTestingModule.withRoutes([])],
|
||||
declarations: [BlogEntryComponent, BlogComponent]
|
||||
});
|
||||
|
||||
const entryFixture = TestBed.createComponent(BlogEntryComponent);
|
||||
const entryInstance : BlogEntryComponent = entryFixture.componentInstance;
|
||||
|
||||
const blogFixture = TestBed.createComponent(BlogComponent);
|
||||
const blogInstance : BlogComponent = blogFixture.componentInstance;
|
||||
|
||||
const blogEntry : BlogEntry = blogInstance.entries[0];
|
||||
entryInstance.entry = blogEntry;
|
||||
entryInstance.blogComponent = blogInstance;
|
||||
|
||||
const oldLength = blogInstance.entries.length;
|
||||
entryFixture.nativeElement.querySelector('div /deep/ .blog-delete > button').click();
|
||||
expect(blogInstance.entries.length).toBe(oldLength - 1);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
import {BlogComponent} from './blog.component'
|
||||
import {Title} from "@angular/platform-browser";
|
||||
|
||||
describe('Blog Component Isolated Test', () => {
|
||||
|
||||
let blogComponent: BlogComponent;
|
||||
|
||||
beforeEach(() => {
|
||||
blogComponent = new BlogComponent(null, null, new Title('Project Blog'));
|
||||
blogComponent = new BlogComponent(null, null, null);
|
||||
});
|
||||
|
||||
it('should have initial entries', () => {
|
||||
|
@ -25,7 +24,7 @@ describe('Blog Component Isolated Test', () => {
|
|||
blogComponent.createBlogEntry(entryTitle, entryImage, entryText);
|
||||
|
||||
let newEntry = blogComponent.entries[blogComponent.entries.length - 1];
|
||||
expect(newEntry.id - 1).toBe(preCreationId)
|
||||
expect(newEntry.id - 1).toBe(preCreationId);
|
||||
expect(newEntry.image).toBe(entryImage);
|
||||
expect(newEntry.text).toBe(entryText);
|
||||
expect(newEntry.createdAt.getDate()).toBe(new Date().getDate());
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -13,7 +13,6 @@ export class LoginComponent {
|
|||
constructor(private loginService: LoginService,
|
||||
private router: Router,
|
||||
private route: ActivatedRoute) {
|
||||
|
||||
}
|
||||
|
||||
login(userName: string, password: string) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test Suite
|
||||
describe('Basic test', () => {
|
||||
describe('Basic Test', () => {
|
||||
|
||||
// Variablendeklaration zur Verwendung in mehreren Testfällen
|
||||
let someInt;
|
||||
|
|
Loading…
Reference in New Issue