Giter Club home page Giter Club logo

ninghao_flutter's Issues

集成测试的问题

分支:test

貌似test.dart已经移除了,用test_api.dart替代了,但是使用test_api.dart包无法完成集成测试,报错如下:

Unhandled exception:
NoSuchMethodError: The method 'group' was called on null.
Receiver: null
Tried calling: group("App", Closure: () => Null, onPlatform: null, retry: null, skip: null, solo: false, tags: null, testOn: null, timeout: null)
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5)
#1      group (package:test_api/test_api.dart:179:13)
#2      main (file:///C:/Users/LLemo/Desktop/Flutter.toBeMaster/flutter.toBeMaster.step01/test_driver/app_test.dart:8:3)
#3      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:300:19)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)
Stopping application instance.
Driver tests failed: 255

代码

import 'package:flutter_driver/flutter_driver.dart';
import 'package:test_api/test_api.dart';

void main() {
  group('App', () {
    FlutterDriver driver;

    final actionChip = find.byValueKey('actionChip');
    final actionChipLabelText = find.byValueKey('actionChipLabelText');

    setUpAll(() async {
      driver = await FlutterDriver.connect();
    });

    tearDownAll(() async {
      if (driver != null) {
        driver.close();
      }
    });

    test('starts at 0', () async {
      expect(await driver.getText(actionChipLabelText), '0');
    });

    test('increaments the counter', () async {
      await driver.tap(actionChip);
      expect(await driver.getText(actionChipLabelText), '1');
    });
  });
}

然后脑子一抽打算用浅薄的理解曲线救国,导入包flutter_test.dart
然后代码报错如下提示:

The name 'find' is defined in the libraries 'package:flutter_driver/src/driver/driver.dart' and 'package:flutter_test/src/finders.dart'.
Try using 'as prefix' for one of the import directives, or hiding the name from all but one of the imports.dart(ambiguous_import)

继续如下暴力执法,解决代码报错

import 'package:flutter_driver/flutter_driver.dart';
import 'package:flutter_test/flutter_test.dart' hide group, find;
import 'package:test_api/test_api.dart' show group;

以为大功告成,结果终端报错如下:

file:///C:/flutter/packages/flutter_test/lib/src/accessibility.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///C:/flutter/packages/flutter_test/lib/src/binding.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///C:/flutter/packages/flutter_test/lib/src/matchers.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///C:/flutter/packages/flutter_test/lib/src/matchers.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
file:///C:/flutter/packages/flutter_test/lib/src/test_pointer.dart:12:1: Error: Not found: 'dart:ui'
export 'dart:ui' show Offset;
^
file:///C:/flutter/packages/flutter_test/lib/src/window.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' hide window;
       ^
file:///C:/flutter/packages/flutter/lib/src/rendering/box.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show lerpDouble;
       ^
file:///C:/flutter/packages/flutter/lib/src/rendering/debug_overflow_indicator.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
file:///C:/flutter/packages/flutter/lib/src/rendering/editable.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show TextBox, lerpDouble;
       ^
file:///C:/flutter/packages/flutter/lib/src/rendering/error.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show Paragraph, ParagraphBuilder, ParagraphConstraints, ParagraphStyle, TextStyle;
       ^
Stopping application instance.
Driver tests failed: 254

google查了一下,一脸懵逼,没能解决,先把坑记住,大丈夫能屈能伸,在pubspec.yaml改动如下:

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_driver:
    sdk: flutter
  test: ^1.6.1  #这里
  intl_translation: ^0.17.4

test 只能用小于1.6.1,大于1.6.1版本的提示如下:

Because every version of flutter_driver from sdk depends on test_api 0.2.4 and test >=1.6.2 depends on test_api 0.2.5, flutter_driver from sdk is incompatible with test >=1.6.2.

So, because flutter.toBeMaster.step01 depends on both test ^1.6.3 and flutter_driver any from sdk, version solving failed.
pub get failed (1)
Because every version of flutter_driver from sdk depends on test_api 0.2.4 and test >=1.6.2 depends on test_api 0.2.5, flutter_driver from sdk is incompatible with test >=1.6.2.

So, because flutter.toBeMaster.step01 depends on both test ^1.6.2 and flutter_driver any from sdk, version solving failed.
pub get failed (1)

我底子烂,暂时先妥协,然后终于可以导入包:

import 'package:flutter_driver/flutter_driver.dart';
// import 'package:flutter_test/flutter_test.dart' hide group, find;
// import 'package:test_api/test_api.dart' show group;
import 'package:test/test.dart';

终于顺利完成了教学视频中集成测试的结果。

阿西吧。。。。。

当前flutter版本:

  • Flutter (Channel beta, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.17763.503], locale zh-CN)
  • Mac: Flutter (Channel beta, v1.5.4-hotfix.2, on Mac OS X 10.14.4 18E226, locale zh-Hans-CN)

buttonColor: Theme.of(context).accentColor 设置无效

分支:material-components

button_demo.dart

line30 buttonColor: Theme.of(context).accentColor 设置无效

buttonColor放在 buttonTheme: ButtonThemeData( 下设置生效

Theme(
                  data: Theme.of(context).copyWith(
                    // buttonColor: Theme.of(context).accentColor,
                    buttonTheme: ButtonThemeData(
                      buttonColor: Theme.of(context).accentColor,
                      textTheme: ButtonTextTheme.primary,
                      // shape: BeveledRectangleBorder(
                      //   borderRadius: BorderRadius.circular(5.0),
                      // )
                      shape:StadiumBorder(),
                    ),
                  ),
                  child: RaisedButton(
                  child: Text('Button'),
                  onPressed: () {},
                  splashColor: Colors.grey,
                  elevation: 0.0,
                  // color: Theme.of(context).accentColor,
                  // textColor: Colors.white,
                  // textTheme: ButtonTextTheme.primary,
                ),
                ),

当前flutter版本:Flutter (Channel beta, v1.5.4-hotfix.2, on Mac OS X 10.14.4 18E226, locale zh-Hans-CN)

.debounce(Duration(milliseconds: 500)) 报错

分支:rxdart

rxdart/rxdart_demo.dart

line35 .debounce(Duration(milliseconds: 500)) 报错

改为 .debounceTime(Duration(milliseconds: 500))

_textFieldSubject
        // .map((item) => 'item:$item')
        // .where((item) => item.length > 9)
        .debounceTime(Duration(milliseconds: 500))
        .listen((data) => print(data));

当前flutter版本:Flutter (Channel beta, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.17763.503], locale zh-CN)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.