小编bsh*_*eps的帖子

是否可以等待组件渲染?React 测试库/Jest

我有一个组件。它有一个按钮。按下按钮后,我使用 setState 函数更改按钮文本(颜色)的样式。当我测试更改的组件时,测试失败,因为更改是异步发生的。我想做一些这里给出的事情(https://testing-library.com/docs/dom-testing-library/api-async/

const button = screen.getByRole('button', { name: 'Click Me' })
fireEvent.click(button)
await screen.findByText('Clicked once')
fireEvent.click(button)
await screen.findByText('Clicked twice')
Run Code Online (Sandbox Code Playgroud)

但不是等待文本更改。我想等待文字颜色改变。谢谢

这是我的按钮的代码

<Button onPress = {() => {this.setState({state : 1});}}>
<Text style = {style}>Button Text</Text>
</Button>
Run Code Online (Sandbox Code Playgroud)

所以当这个按钮被按下时。state 设置为 1。并且在 render 中:

if(this.state.state === 1) style = style1
else style = style2;
Run Code Online (Sandbox Code Playgroud)

但从日志中可以看出,render是在测试检查样式后调用的。那么如何等待渲染完成后再检查字体颜色是否已更改?

这是测试代码

test('The button text style changes after press', () => {
  const {getByText} = render(<Component/>);
  fireEvent.press(getByText('button'));
  expect(getByText('button')).toHaveStyle({
    color : '#ffffff'
  });
})
Run Code Online (Sandbox Code Playgroud)

jestjs react-native react-testing-library

19
推荐指数
1
解决办法
7万
查看次数

为什么预处理器不将回车符视为空白字符

在 C 标准的章节中6.4 Lexical elements写着

  1. ...预处理标记可以用空格分隔;它由注释(稍后描述)或空白字符(空格、水平制表符、换行符、垂直制表符和换页符)或两者组成。

可以看出,回车符不包括在空白字符的概念中。

另一方面,在标准 C 函数的描述中isspace写有 ( 7.4.1.10 The isspace function)

  1. ...标准空白字符如下:空格 ('')、换页符 ('\f')、换行符 ('\n')、回车符 ('\r')、水平制表符 ( '\t')和垂直制表符('\v')。在“C”语言环境中,isspace 仅对标准空白字符返回 true。

在描述预处理的部分中是否故意未提及回车符?如果是,原因是什么?

或者这只是标准的缺陷?

同样的问题对于 C++ 标准也有效。

c whitespace preprocessor language-lawyer

5
推荐指数
1
解决办法
3163
查看次数

移动后端API密钥的安全性

假设我正在开发一个移动应用程序,该应用程序可以调用API服务器。API服务器由API密钥保护。

我无法在移动应用程序内部对API密钥进行硬编码,因为它可能被盗。

如何保护API密钥?

security api mobile api-key

2
推荐指数
2
解决办法
919
查看次数