我正在使用NativeScript 6.4.1和Angular 8编写应用程序。
我想为HttpInterceptor编写单元测试。我的拦截器会添加一个令牌来选择http调用,如果用户从后端收到某些错误,则会将他们路由到身份验证页面。
代码可以正常运行,并且可以运行,但是我的单元测试不起作用。
运行单元测试时,出现此错误:
driver.get('https://www.amazon.com/international-sales-offers/b/?ie=UTF8&node=15529609011&ref_=nav_navm_intl_deal_btn')
checkCSS = "[class='a-row a-spacing-small filterItem']:nth-of-type(1) .a-checkbox.checkbox.a-spacing-micro"
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, checkCSS)))
departments = len(driver.find_elements_by_css_selector(checkCSS))
for depNum in range(departments):
print(depNum)
if depNum == 12:
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, "span.a-expander-prompt"))).click()
time.sleep(1)
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, checkCSS)))
driver.find_elements_by_css_selector(checkCSS)[depNum].click()
我不知道为什么会收到错误消息。
这是我的单元测试:
HashRouter
这是我的拦截器:
import {
Router //replace Router
} from "react-router-dom";
ReactDOM.render(
<LocaleProvider locale={enUS}>
<Provider store={Store}>
<Router history={history}> //replace here saying Router
<Layout/>
</Router>
</Provider>
</LocaleProvider>, document.getElementById("app"));
registerServiceWorker();
答案 0 :(得分:1)
您必须将NativeScriptRouterModule
加载为NativeScriptRouterModule.forRoot([])
,这与在具有可用路由的应用模块中加载路由器类似。由于是单元测试,因此您不会在此处传递路线。