我需要聚焦一个输入元素,并在点击另一个元素时选择所有文本。为此,我使用@ViewChild获取input元素并将其传递给renderer invokeElementMethod。
组件中的代码如下,
Unknown error checking for existence of class: com.fasterxml.jackson.databind.ObjectMapper
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/Versioned
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.logging.log4j.util.LoaderUtil.loadClass(LoaderUtil.java:141)
at org.apache.logging.log4j.util.LoaderUtil.isClassAvailable(LoaderUtil.java:115)
at org.apache.logging.log4j.core.util.Loader.isClassAvailable(Loader.java:310)
at org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory.<init>(YamlConfigurationFactory.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.logging.log4j.core.util.ReflectionUtil.instantiate(ReflectionUtil.java:188)
at org.apache.logging.log4j.core.config.ConfigurationFactory.addFactory(ConfigurationFactory.java:190)
at org.apache.logging.log4j.core.config.ConfigurationFactory.getInstance(ConfigurationFactory.java:164)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:613)
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:152)
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:122)
at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43)
at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46)
at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
at org.apache.jmeter.JMeter.<clinit>(JMeter.java:109)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.jmeter.NewDriver.main(NewDriver.java:246)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.Versioned
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 43 more
从组件级别开始,该功能运行良好。现在,当我尝试编写测试用例来执行执行上述代码的方法时,它会抛出
setTimeout(() => {
this._renderer.invokeElementMethod(this.elAccountRename.nativeElement, 'select', []);
this._renderer.invokeElementMethod(this.elAccountRename.nativeElement, 'focus', []);
}, 0);
我的测试用例块如下,
[object ErrorEvent] thrown
答案 0 :(得分:0)
不确定是否完全适合您的问题,但是我遇到了一个类似的问题,茉莉花会引发超时错误:
[object ErrorEvent] thrown
或
Timeout has occurred thrown
在IDE输出中。
在我的情况下,该错误是由一个测试用例引起的,该用例异步调用了我忘记模拟的服务方法(并且在单元测试期间未能返回)。
相应的超时在jasmine.DEFAULT_TIMEOUT_INTERVAL ms之后引发。 Karma然后错误地将它们与当前正在执行的测试用例相关联,这通常是导致超时的测试用例之后的一个。这对我来说是非常误导的。
为了确定真正的根本原因测试用例,我编写了一个占位符测试用例:
it('just waits', (done) => {
sleep(4000).then(() => { // sleept time needs to be lower than default timeout
expect(true).toBe(true);
done();
})
});
我遍历了测试套件。根据放置位置的不同,您会看到不同的测试失败。当您看到差异时,便知道之前的测试用例存在问题。