cavy-extension
v0.0.4
Published
An extension for cavy test framework for React Native.
Downloads
5
Maintainers
Readme
cavy-extension
Cavy is a cross-platform integration test framework for React Native.
Cavy-extension extends the functionality of cavy.
- It simplied the steps in component testing and enable user only need to be focused only on authoring test spec and test pages.
- User only need to provides a testpage, a key which associate swith the testpage. And toTestPage would help to navigate directly to the test page.
- Allow user to extend the functionality of TestScope and provides IntelliSense when authoring spec.
Steps to authoring test case
- Write a simple UI test page.
export const ExampleTestPage1 = () => {
const generateTestHook = useCavy();
const [text, setText] = useState('');
return <TextInput placeholder="ExampleTestpage 1"
onChangeText={(text) => setText(text)} value={text}
ref={generateTestHook('Example1.TextInput')} />;
};
- Aggregate the testpages with keys. For example: Example1
export const TestPages: Array<ITestPage> = [
{
key: 'Example1',
title: 'TestExample by import {ExampleTestPage1}',
page: ExampleTestPage1
},
{
key: 'Example2',
title: 'TestExample by import ExampleTestPage',
page: ExaExampleTestPage2
},
- Write the spec. toTestPage('Example1') helps to navigate to test page.
await spec2.toTestPage('Example1');
Functionality of this extension
Provides a simple testapp, test main page, back button on subpage. and toTestPage to help the navigation.
- Test main page
![testcaselist](https://user-images.githubusercontent.com/6290692/59141800-3af13080-8968-1 1e9-9b27-dfd7b9e130ea.png)
- Test sub page
Add your own functionality to spec and inject it to spec. like Spec2
function ExampleSpec (spec: TestScope, spec2: SpecHelper) {
spec.describe('Example 1', function () {
spec.it('Test Example 1', async function () {
await spec2.toTestPage('Example1');
...
});
});
Or
export default function (spec: TestScope) {
let spec2: SpecHelper = new SpecHelper(spec);
spec.describe('Sample Module', function () {
spec.it('SampleModule', async function () {
await spec2.toTestPage('SampleModule');
...
});
});
- A typescript project IntelliSense for spec or spec2 in IDE.
Test Example