小编svi*_*i3c的帖子

如何在flutter中测试本地化的小部件?

我按照flutter docs中的建议将l10n添加到我的flutter应用程序中,建议使用如下静态方法获取本地化:

static DemoLocalizations of(BuildContext context) {
  return Localizations.of<DemoLocalizations>(context, DemoLocalizations);
}
Run Code Online (Sandbox Code Playgroud)

这在运行应用程序时工作正常,但是当我尝试测试我的小部件时,返回的值始终为空。

有没有什么简单的方法可以在测试中提供本地化?

现在我正在通过 DI 进行本地化,但这是一个相当大的开销。

flutter

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

有没有办法将管道的结果保留在 Angular 2 中的模板输入变量中?

我真的很喜欢该指令的语法*ngFor。您可以迭代数组的所有元素。

我想用管道的结果来实现同样的效果。例如async管道。当async我将管道放置在模板中使用可观察结果的属性的任何位置时,我正在进行大量订阅,并且我的模板中充斥着类似{{(someObservable$ | async)?.propertyName}}. 有没有办法像这样简单地将管道的当前结果绑定到模板输入变量?

<div let="currentValue = someObservable$ | async">
  {{currentValue?.foo}}, {{currentValue?.bar}}
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试将此与 结合使用*ngIf,但这似乎不是有效的模板表达式:

<div *ngIf="let currentValue = someObservable$ | async">
  {{currentValue?.foo}}, {{currentValue?.bar}}
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

angular

6
推荐指数
1
解决办法
2823
查看次数

如何使用未解决的 Future 对 FutureBuilder 进行小部件测试

我想知道如何在 flutter 小部件测试中尚未完成未来的情况下测试案例。

只要未来未解决,小部件就应该显示一个微调器。

我试过这个测试用例:

testWidgets(
  'should show a spinner when loading',
  (WidgetTester tester) async {
    when(valueRepository.getValues())
        .thenAnswer((_) => Future.delayed(Duration(seconds: 30), () => []));
    await tester.pumpWidget(withApp(ValueListPage(
      valueRepository: valueRepository,
    )));

    await tester.pumpAndSettle(
        Duration(seconds: 10), EnginePhase.build, Duration(minutes: 1));

    expect(find.byType(CircularProgressIndicator), findsOneWidget);
  },
);
Run Code Online (Sandbox Code Playgroud)

结果:未来解决,期望落空。

注意:withApp 初始化一个带有本地化的应用程序。因此,我必须打电话tester.pumpAndSettle()等待 l10n。

flutter flutter-test

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

IntelliJ IDEA在rxjs5中找不到Observable的运算符

我刚刚安装了rxjs 5 beta 3 npm i rxjs@5.0.0-beta.3.

我有以下示例代码:

import {Observable} from "rxjs"

new Observable(o => o.next(42)).filter(() => true);
Run Code Online (Sandbox Code Playgroud)

例如,当使用ts-node时,此代码编译得非常好.

但是当在IntelliJ IDEA中查看此代码时,filter()找不到运算符.

在Observable实例上使用运算符时,也找不到它们.

建议的静态成员Observable是:

  • create()
  • if()
  • throw()

一个实例的建议成员Observable是:

  • _isScalar()
  • forEach()
  • lift()
  • subscribe()

我还试图只导入我需要的东西,但我的IDE仍告诉我filter()Observable实例上不存在:

import {Observable} from "rxjs/Observable"
import "rxjs/add/operator/filter"

new Observable(o => o.next(42)).filter(() => true);
Run Code Online (Sandbox Code Playgroud)

有关如何让IntelliJ IDEA了解运营商的任何建议吗?

intellij-idea typescript rxjs5

3
推荐指数
1
解决办法
2650
查看次数