J'ai un composant qui utilise le @Input()
sur une variable d'instance et j'essaie d'écrire mon test unitaire pour l'annotation openProductPage()
mais je suis un peu perdu sur la façon de configurer mon test unitaire. I pourrait rendre cette variable d'instance publique, mais je ne pense pas que je doive avoir recours à cela.
Comment puis-je configurer mon test Jasmine de manière à ce qu'un produit fictif soit injecté (fourni ?) et que je puisse tester la fonction openProductPage()
méthode ?
Mon composant :
import {Component, Input} from "angular2/core";
import {Router} from "angular2/router";
import {Product} from "../models/Product";
@Component({
selector: "product-thumbnail",
templateUrl: "app/components/product-thumbnail/product-thumbnail.html"
})
export class ProductThumbnail {
@Input() private product: Product;
constructor(private router: Router) {
}
public openProductPage() {
let id: string = this.product.id;
this.router.navigate([“ProductPage”, {id: id}]);
}
}
2 votes
J'ai écrit un court blog sur le test des composants avec @Input() qui explique quelques façons de tester l'entrée que vous voulez : medium.com/@AikoPath/