我有以下内容:
@echo off
set Source=Source folder
set Target=Destination folder
set MaxLimit=100
for /f "tokens=1* delims=[]" %%G in ('dir /A-D /B "%Source%\*.*" ^| find /v /n ""') do (
move /y "%Source%\%%~nxH" "%Target%"
if %%G==%MaxLimit% exit /b 0
)
由于它也是一个连接的组件,所以我添加了以下测试:
const Repairs: React.FC<RepairsProps> = ({repairs, repairsPropertyLoad}) => {
const { t } = useTranslation()
const [isARepair, setRepair] = useState(true)
const handleOnClick = () => {
setRepair(false)
repairsPropertyLoad('token')
}
return ( isARepair ? <p>on</p> : <p>off</p> )
...
如何测试describe('Repairs', () => {
let store: any
let component: any
beforeEach(() => {
store = mockStore({
repairs: mockRepairs
})
store.dispatch = jest.fn()
component = render(
<Provider store={store}>
<Repairs />
</Provider>
)
})
it('should render the Repairs component correctly', () => {
expect(component).toMatchSnapshot()
})
it('should find the repair button in the document', () => {
const { getByText } = component
const repairsButton = getByText('Repair')
expect(repairsButton).toBeInTheDocument()
})
})
标志场景(对与错),以便可以对isARepair
或off
结果进行快照?
答案 0 :(得分:3)
我强烈建议您编写测试,就像最终用户正在使用您的UI一样。例如,当用户单击按钮时,您将setIsRepair
设置为false。您可以使用fireEvent
模拟按钮的点击:
fireEvent.click(repairsButton);
expect(getByText('off')).not.toBeNull();
// this might not be the exact code but you get the gist
如果要测试挂钩,则应创建一个自定义挂钩,将其渲染为虚拟测试组件,然后测试返回值;或使用React Hooks Testing Library。但是,如果您的状态逻辑像单个useState
一样简单,我建议您不要对其进行测试,因为您实际上将在测试React的useState而不是测试自己的状态逻辑。我的建议是测试由很多部分组成的状态逻辑(它非常复杂,需要进行测试)。