AFG*_*azy 11 react-native redux react-redux redux-store detox
问题
我们有一个非常复杂的应用程序,我们不希望在每个测试用例中完成整个过程以到达特定的屏幕来测试它,或者我们只想跳转到具有存储在redux存储中的某个状态的特定应用程序.
我尝试
了多少初始状态,加载特定的屏幕,所以我可以直接测试它,每次运行排毒测试我加载不同的mocha.opts来选择这部分测试用例并使用'react-native-config'所以我可以在每次运行中加载不同的状态,例如,为了加载屏幕,我将执行以下操作:
题
我的方法是如此复杂,需要很多设置和开销来运行每个屏幕的测试,所以我想知道是否有任何人有相同的问题,我怎么能解决它?一般来说,如何在排毒中处理反应原生线程?
我认为排毒无法在运行时与本机线程进行通信并更改状态,因此我想到了一个使用Leo Natan提到的使用模拟技术的小技巧,这可能对您有用
您可以用一个屏幕(App.e2e.js)来模拟您的App.js文件,该屏幕上有一些带有已知testID的按钮,每个按钮分派加载特定状态以存储所需的所有操作,您可以通过按以下任一按钮来启动每个测试套件方法中的按钮,beforeEach
然后您可以开始正常的测试流程
例如:
如果您想测试一个距离较远的屏幕(用户实际使用该应用时需要太多点击才能到达)并且需要进行身份验证,则可以采用以下结构:
App.e2e.js具有2个按钮:
onAuthenticationSuccess(user, authToken)
this.navigation.navigate("screenName")
test.js
describe("Screen work as intended", () => {
beforeEach(async () => {
await device.reloadReactNative();
await element(by.id("authButtonID")).tap();
await element(by.id("navigateButtonID")).tap();
});
it("should do something", async () => {
//user is loaded in store
//current screen is the screen you want to test
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1046 次 |
最近记录: |