我有一个React组件。无论好坏,我都使用由Routes公开的全局对象-Rails js-routes的宝石。我有一个使用Jest的快照测试,它测试了碰巧使用Routes全局函数的简单组件。
在我的测试中,我想嘲笑Routes。因此,当我的组件调用时Routes.some_path(),我可以返回一些任意字符串。
我主要遇到的错误是Cannot find name 'Routes'.。
这是我的设置:
package.json
"jest": {
"globals": {
"ts-jest": {
"enableTsDiagnostics": true
}
},
"testEnvironment": "jsdom",
"setupFiles": [
"<rootDir>/app/javascript/__tests__/setupRoutes.ts"
]
...
Run Code Online (Sandbox Code Playgroud)
setupRoutes.ts(这似乎是最受欢迎的解决方案)
const globalAny:any = global;
globalAny.Routes = {
some_path: () => {},
};
Run Code Online (Sandbox Code Playgroud)
myTest.snapshot.tsx
import * as React from 'react';
import {shallow} from 'enzyme';
import toJson from 'enzyme-to-json';
import MyComponent from 'MyComponent';
describe('My Component', () => {
let component;
beforeEach(() => { …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个角度应用程序,可以运输和自举几乎没有指令.理想情况下,您将包含js文件:
<script src="myapp.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后在页面上放一个div:
<div id="myDiv"></div>
Run Code Online (Sandbox Code Playgroud)
并启动应用程序,如:
angular.bootstrap(document.getElementById('myDiv'),['myApp']);
Run Code Online (Sandbox Code Playgroud)
不用说,这不起作用.
我想我的问题是 - 这甚至可能吗?
理想情况下,我想实现类似Stripe的应用程序:
<script
src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"
data-key="pk_test_czwzkTp2tactuLOEOqbMTRzG"
data-amount="2000"
data-name="Demo Site"
data-description="2 widgets ($20.00)"
data-currency="usd"
data-image="/128x128.png">
</script>
Run Code Online (Sandbox Code Playgroud)
但无法找到办法让这个工作.主要目标是不必公开角度细节以使用我的应用程序.