Angular2 Karma测试 - 如何使表单字段“脏”?

时间:2016-03-01 23:19:49

标签: javascript unit-testing jasmine angular karma-runner

我有一个我试图测试的表单有多个输入。输入保存模糊,然后验证表单并检查是否有任何字段是脏的并保存。

问题在于,无论我尝试什么,我都无法让表单在测试中看起来像脏。我试过了

element.querySelector('#id').value = 'Text';

我尝试更新表单从中获取数据的实际对象(我认为这是更新模型)没有骰子。

我看到angular2 repostiory中有一个dispatchEvent方法允许你将输入发送到一个元素,但是在angular2 / testing_internals中,所以它不能在外部项目中导入。有关如何欺骗表单以认为它在单元测试中接收输入的任何想法?

另一方面,当我在谷歌搜索时,ng2单元测试的文档非常差。你知道有什么好的网站吗?

1 个答案:

答案 0 :(得分:3)

设置值后,从元素中调度input事件。

https://plnkr.co/edit/SyYbKLBtsTL645rSUjAS?p=preview

虽然来自src的文件不是公共API,但它包含一个方便的

import {dispatchEvent} from 'angular2/testing_internal';

允许简单地

 dispatchEvent(password, 'input');

另见