我有一个组件。它有一个按钮。按下按钮后,我使用 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) 在 C 标准的章节中6.4 Lexical elements写着
- ...预处理标记可以用空格分隔;它由注释(稍后描述)或空白字符(空格、水平制表符、换行符、垂直制表符和换页符)或两者组成。
可以看出,回车符不包括在空白字符的概念中。
另一方面,在标准 C 函数的描述中isspace写有 ( 7.4.1.10 The isspace function)
- ...标准空白字符如下:空格 ('')、换页符 ('\f')、换行符 ('\n')、回车符 ('\r')、水平制表符 ( '\t')和垂直制表符('\v')。在“C”语言环境中,isspace 仅对标准空白字符返回 true。
在描述预处理的部分中是否故意未提及回车符?如果是,原因是什么?
或者这只是标准的缺陷?
同样的问题对于 C++ 标准也有效。
假设我正在开发一个移动应用程序,该应用程序可以调用API服务器。API服务器由API密钥保护。
我无法在移动应用程序内部对API密钥进行硬编码,因为它可能被盗。
如何保护API密钥?
api ×1
api-key ×1
c ×1
jestjs ×1
mobile ×1
preprocessor ×1
react-native ×1
security ×1
whitespace ×1