我正在尝试使用打字稿中的react-testing-library创建带有样式的Material-UI组件的测试。我发现很难访问组件的内部功能以进行模拟和断言。
Form.tsx
export const styles = ({ palette, spacing }: Theme) => createStyles({
root: {
flexGrow: 1,
},
paper: {
padding: spacing.unit * 2,
margin: spacing.unit * 2,
textAlign: 'center',
color: palette.text.secondary,
},
button: {
margin: spacing.unit * 2,
}
});
interface Props extends WithStyles<typeof styles> { };
export class ExampleForm extends Component<Props, State> {
async handleSubmit(event: React.FormEvent<HTMLFormElement>) {
// Handle form Submit
...
if (errors) {
window.alert('Some Error occurred');
return;
}
}
// render the form
}
export default …Run Code Online (Sandbox Code Playgroud) 我正在使用玩笑测试来测试用 Create React App 创建的 #typescript 编写的 React 项目。我在用着react-testing-library。我有一个表单组件,它显示alert表单是否提交为空。我想通过监视/嘲笑来测试此功能(也许),window.alert但它不起作用。
我尝试jest.fn()按照许多答案中的建议使用,但这也不起作用。
window.alert = jest.fn();
expect(window.alert).toHaveBeenCalledTimes(1);
Run Code Online (Sandbox Code Playgroud)
这是我的实现方式:Form.tsx
async handleSubmit(event: React.FormEvent<HTMLFormElement>) {
// check for errors
if (errors) {
window.alert('Some Error occurred');
return;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我构建 React+Jest+react-testing-library 测试的方法:Form.test.tsx
it('alerts on submit click', async () => {
const alertMock = jest.spyOn(window,'alert');
const { getByText, getByTestId } = render(<Form />)
fireEvent.click(getByText('Submit'))
expect(alertMock).toHaveBeenCalledTimes(1)
})
Run Code Online (Sandbox Code Playgroud) 我正在为我的 Flutter 项目设置Firebase 分析包。库中提供的示例传递analytics用于跟踪事件和observer跟踪选项卡更改的对象。
class MyApp extends StatelessWidget {
...
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase Analytics Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
navigatorObservers: <NavigatorObserver>[observer],
home: MyHomePage(
title: 'Firebase Analytics Demo',
analytics: analytics,
observer: observer,
),
);
}
}
...
class _MyHomePageState extends State<MyHomePage> {
...
Future<void> _sendAnalyticsEvent() async {
await analytics.logEvent(
name: 'test_event',
parameters: <String, dynamic>{
'string': 'string',
'int': 42,
'long': 12345678910,
'double': 42.0,
'bool': true,
},
);
setMessage('logEvent …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Flutter 中实现一个非常简单的Card Paginator 组件(单卡)版本。
这是我创建的基本演示的示例:
class CardComponent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Stack(
children: [
Positioned(
top: 20.0,
left: 20.0,
child:
GestureDetector(
// onTap should run while the text is visible on the screen
// The text will become invisible when the Listview gest scrolled upwards
onTap: (){print('text tapped');},
child:
Container(
alignment:Alignment.topCenter,
color: Colors.blueAccent,
// This is fixed Text over which the card should scroll
child: Text('Test Button')))),
ListView(
children: [
// This …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 Flutter 应用程序,它仅具有基于firebase_auth和google_sign_in的 Google 登录。我无法找到如何模拟 Flutter 中的依赖项或如何单击 Google 身份验证对话框或绕过整个身份验证工作流程的标准工作示例。
我正在用于flutter_driver 编写此处提到的集成测试。

app_test.dart
import 'package:flutter_driver/driver_extension.dart';
import 'package:pruoo_app/main.dart' as app;
void main() {
enableFlutterDriverExtension();
app.main();
}
Run Code Online (Sandbox Code Playgroud)
登录.dart
//...imports
class LoginView extends StatefulWidget {
@override
_LoginViewState createState() => _LoginViewState();
}
class _LoginViewState extends State<LoginView> {
StreamSubscription<AuthenticationState> x;
void getStream(AuthenticationState state, BuildContext context) async {
if (state.toString() == 'AuthenticationAuthenticated') {
print("Navigate to Main Page");
);
}
}
Widget build(BuildContext context) {
final AuthenticationBloc authenticationBloc =
BlocProvider.of<AuthenticationBloc>(context);
x = authenticationBloc.state.listen((state) { …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何使用Play Install Referrer Library/API访问 Google Play 商店提供的引荐来源信息。我需要创建一个到 Android 的平台通道吗?什么时候该函数应该被触发?
在使用 Cloud Firestore 作为数据后端时,我需要与非技术站点经理(编辑、销售团队等)共享一些数据集合。此外,我希望让这些人有权编辑存储在 Cloud Firestore 中的数据。
Google Sheets 是站点管理员非常熟悉的工具,它可以节省我开发 CRUD 管理面板的时间,例如从头开始用于数据更新和查看的界面。
这个 Stack Overflow答案显示了如何使用云函数和深度级别发送数据,这个 Github库可以使用 Google Apps 脚本从 Firestore 获取数据(我希望使用 Cloud Functions 或 Firebase Admin SDK 来做到这一点),但我仍在尝试弄清楚如何制作一个端到端的基于表格的界面。
请指导是否有更好的替代方案来实现相同的目标。我在从 SQL 数据库和 Django 自动创建的管理界面切换到 Firebase-Firestore NoSQL 世界时遇到了一些困难。
google-sheets firebase google-cloud-functions google-cloud-firestore
我尝试使用indicatorTabBar的属性将指示器自定义为绿点。THE indicator属性接受Decoration继承的Widget可能有BoxDecoration,ShapeDecoration并UnderlineTabDecoration作为选项。
双方BoxDecoration并ShapeDecoration环绕标签内容,因此难以添加选项卡下一个循环。UnderlineTabDecoration没有提供任何使边缘变圆和自定义宽度的方法。
我能想到的最好的是:
TabBar(
controller: _controller,
indicatorSize: TabBarIndicatorSize.tab,
indicator: UnderlineTabIndicator(
borderSide: BorderSide(width: 5.0, ),
insets: EdgeInsets.symmetric(horizontal:36.0)
),
isScrollable: true,
tabs: <Widget>[
Tab(text: 'Week 1',),
Tab(text: 'Week 2',),
Tab(text: 'Week 3',),
Tab(text: 'Week 4',),
Tab(text: 'Week 5',),
Tab(text: 'Week 6',),
Tab(text: 'Week 7',),
Tab(text: 'Week 8',),
],
),
Run Code Online (Sandbox Code Playgroud)
如何在Flutter TabBar中添加圆点作为指标?
flutter ×5
dart ×2
firebase ×2
jestjs ×2
reactjs ×2
typescript ×2
android ×1
bloc ×1
flutter-test ×1
listview ×1
material-ui ×1