小编Vin*_*rga的帖子

链接到Bitbucket Markdown中带空格的文件名

假设我有一个README.md,我想创建一个指向其名称中包含空格的文件的链接file with spaces.md.我希望能够跳转到文件的源代码.

/
 -- README.md
 -- File with spaces.md
Run Code Online (Sandbox Code Playgroud)

检查浏览器中的元素后,我弄清楚href应该是什么(手动更改,然后单击它将我带到我想要访问的页面):

<a href="username/repository/src/c0mm1th4sH/File%20with%20%spaces.md">
Run Code Online (Sandbox Code Playgroud)

不幸的是我无法做到这一点.到目前为止我尝试过的一些事情:

[Link](File with spaces.md)
[Link](File%20with%20spaces.md)
[Link](File\ with\ spaces.md)
[Link]("File with spaces.md")
Run Code Online (Sandbox Code Playgroud)

它导致Bitbucket中的以下HTML:

<a href="/username/repository/src/c0mm1th4sH/File%2520with%2520spaces.md">
<a href="/username/repository/src/c0mm1th4sH/File%2520with%2520spaces.md">
<a href="/username/repository/src/c0mm1th4sH/File%5C%2520with%5C%2520spaces.md">
<a href="" title="File with spaces.md">
Run Code Online (Sandbox Code Playgroud)

您可以使用我创建的示例存储库.

markdown bitbucket

13
推荐指数
3
解决办法
4683
查看次数

如何在 Flutter/Dart 中单元测试 ChangeNotifier 的 notificationListener 是否被调用?

provider在我们的应用程序中使用该包,我想ChangeNotifier单独测试我的类,以进行简单的单元测试来检查业务逻辑。

除了属性值之外ChangeNotifier,我还想确保在某些情况下(必要时),已notifyListeners调用 ,否则,依赖于此类的最新信息的小部件将不会被更新。

目前,我正在间接测试 是否已notifyListeners被调用:我正在使用这样一个事实:ChangeNotifier允许我使用其方法添加回调addListener。在我添加到测试套件中的回调中,我只需增加一个整数计数器变量并对其进行断言。

这是测试我是否ChangeNotifier调用其侦听器的正确方法吗?有没有更具描述性的方法来测试这个?

这是我正在测试的课程:

import 'package:flutter/foundation.dart';

class ExampleModel extends ChangeNotifier {
  int _value = 0;

  int get value => _value;

  void increment() {
    _value++;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是我测试它的方法:

import 'package:mobile_app/example_model.dart';
import 'package:test/test.dart';

void main() {
  group('$ExampleModel', () {
    ExampleModel exampleModel;
    int listenerCallCount;

    setUp(() {
      listenerCallCount = 0;
      exampleModel = ExampleModel()
        ..addListener(() {
          listenerCallCount += 1;
        });
    });

    test('increments value and …
Run Code Online (Sandbox Code Playgroud)

provider unit-testing dart flutter

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

禁用Jasmine期望,如xdescribe或xit?

Jasmine网站上,我看到我们可以按照xdescribe或按个别规格禁用套件xit.有没有办法只禁用期望(如xexpect)?

我问这个的原因是因为我正在用Protractor编写e2e测试,在我们的持续集成中,我们还没有(如果有的话)可以访问数据库,虽然在本地我们可以运行真正的端到端测试例如,到数据库.

我想将个别期望标记为可选,具体取决于配置或环境变量.做一次切换,然后在expect周围创建一个包装器会很好,只有当我们在本地运行测试(访问数据库)时才会失败.

例如,我可以创建一个新的规范系列:

if (process.env.DB_AVAILABLE) {
  dbit = it;
} else {
  dbit = xit;
}
Run Code Online (Sandbox Code Playgroud)

并编写依赖于数据库连接的规范,如下所示:

dbit('creates new user', function () {});
Run Code Online (Sandbox Code Playgroud)

有没有办法对expect(例如dbexpect)做同样的事情?

如果我的方法存在根本性的问题,请不要阻止它让我知道.

javascript database jasmine angularjs-e2e protractor

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

如何在Firebase分析中跟踪Flutter屏幕?

我有一个Flutter应用,并且正在Flutter上测试Google Analytics for Firebase。

我想看看我们的用户(现在是我)正在访问的路线。我按照设置步骤进行操作firebase_analytics,我也检查了他们的示例应用程序。如调试视图文档中所述,我启用了Google Analytics(分析)调试

不幸的是,firebase_screen_class我在Analytics Debug视图中仅收到两种屏幕视图()FlutterMainActivity

我希望看到/example-1/example-2/welcome地方,但我不知道。

这是我在Flutter中运行的应用

class App extends StatelessWidget {
  final FirebaseAnalytics analytics = FirebaseAnalytics();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      routes: <String, WidgetBuilder>{
        '/example-1': (_) => Example1(),
        '/example-2': (_) => Example2(),
        '/welcome': (_) => Welcome(),
      },
      home: Welcome(),
      navigatorObservers: [FirebaseAnalyticsObserver(analytics: analytics)],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

firebase flutter firebase-analytics

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

如何在 Flutter 中为禁用的文本表单字段的标签设置主题颜色?

我想在我的 Flutter 应用程序中禁用文本字段的标签上应用一个主题,因为我现在的灰色很难阅读。

我想将它应用到我的整个应用程序,所以我想使用主题,但是,我没有找到任何可以自定义标签文本样式的解决方案 仅在禁用文本表单字段时

如何在 Flutter 中为禁用的文本表单字段的标签设置主题和全局颜色?

我知道如何有条件地更改标签的文本样式,但是,我需要记住始终使用相同的样式(或者我可以包装小部件,但这听起来也不理想)。我可以通过decoration命名参数自定义标签的颜色,如下所示:

TextFormField(
  enabled: isEnabled,
  decoration: InputDecoration(
    labelText: 'Value',
    labelStyle: TextStyle(color: isEnabled ? Colors.green : Colors.red),
  ),
  // .... other fields, like controller might come here
),
Run Code Online (Sandbox Code Playgroud)

theming dart material-design flutter

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

Image.networkloadingBuilder的加载进度事件为null

我正在尝试使用Image.network构造函数的loadingBuilder参数。

加载图像时,我想显示 a CircularProgressIndicator,其值设置为下载量除以预期文件大小的比率。我希望我可以使用ImageChunkEvent参数的cumulativeBytesLoaded,来做到这一点expectedTotalBytes

我在文档中找到了一个示例:

以下示例用于loadingBuilder显示CircularProgressIndicator图像通过网络加载的时间。

Image.network(
  'https://example.com/image.jpg',
  loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent loadingProgress) {
    if (loadingProgress == null)
      return child;
    return Center(
      child: CircularProgressIndicator(
        value: loadingProgress.expectedTotalBytes != null
            ? loadingProgress.cumulativeBytesLoaded / loadingProgress.expectedTotalBytes
            : null,
      ),
    );
  },
),
Run Code Online (Sandbox Code Playgroud)

但问题是,它loadingProgress总是如此null,所以我所做的整个loadingBuilder谜题都是徒劳的。

为什么不将实际值ImageChunkEvent loadingProgress传递给函数?loadingBuilder

user-experience image loading flutter

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

如何在 Dart 或 Flutter 中模拟静态 getter 的返回值?

我想弄清楚如何修改 Flutter 和 Dart 中单元测试的静态 getter 的返回值。

我正在对一个简单的功能进行单元测试:

  Future<bool> exampleFunc() async {
    if (Platform.isIOS) {
      // Do some iOS-specific things
      return false;
    } else if (Platform.isAndroid) {
      // Do some Android-specific things
      return true; // just as an example
    }
    throw 'Unexpected platform';
  }
Run Code Online (Sandbox Code Playgroud)

我想修改类的静态 getter 的返回值:我想调整Platform.isIOS不同Platform.isAndroid测试用例的返回值。

请注意,我知道这个问题的解决方法,例如,我可以将函数拆分为两个函数(每个平台一个),我可以注入我自己的函数enum(或者在这种情况下,甚至bool可以工作)来代表受支持的平台。在这个例子中,我实际上打算这样做,但我想知道如何“修改”类的Platformgetter 的返回值,因为有时,您不想像其他人那样修改函数的签名依赖它,但您仍然想对该函数进行单元测试。

platform unit-testing mockito dart flutter

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

多次打开多个文件输入,而不会丢失先前选择的文件

我有多个文件输入。我希望我的客户在单击“选择文件”时选择多个文件(我认为已完成),如果他们忘记选择一些文件,我希望我的代码启用选择新文件(完成)并将该数据添加到他们之前选择的数据(无法解决)。

如何将新文件添加到列表?

只是为了给您提供背景信息:之后的目标是将每个带有AJAX的文件发送到我的PHP服务器。

$("#upload-form").submit(function(e) {
  $('#displayFileNames').html('');
  console.log('Currently in files.');
  var files = $('#myFileInput')[0].files;
  for (var i = 0; i < files.length; i++){
    $('#displayFileNames').append(files[i].name + '</br>');
    console.log(files[i].name);
  }

  // Send data with AJAX.
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='upload-form' action='' method='post' enctype='multipart/form-data'>
    <input id='myFileInput' class='file-input' type='file' name='file[]' multiple='multiple' />
    <input type='submit' value="See what's in there" />
</form>
<div id="displayFileNames"></div>
Run Code Online (Sandbox Code Playgroud)

任何帮助,提示表示赞赏!

html javascript php jquery multiple-file-upload

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

在 .eslintrc.js 文件中使用导出默认值而不是 module.exports

我想在我的文件中使用export default obj而不是,因为我们在代码库中的其他任何地方都使用.module.exports = obj.eslintrc.jsexport

到目前为止没有运气,很难搜索这个问题。

我得到的错误:

> eslint src

Cannot read config file: src/.eslintrc.js
Error: Unexpected token export
src/.eslintrc.js:23
export default foo;
^^^^^^

SyntaxError: Unexpected token export
Run Code Online (Sandbox Code Playgroud)

javascript export node.js eslint eslintrc

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

使用 Vue.js 使必需的属性接受 null,但不是未定义的

我想在我的一个组件中接受对象和 null(Vue.js 检查对象的null 值,即使typeof null === 'object'),但我想让undefined值验证失败。

我尝试过的(使用vue-property-decorator

@Prop({ required: true, type: Object, validator: v => typeof v === 'object' })
@Prop({ required: true, validator: v => typeof v === 'object' })
// I got an error:
//> Expected Object, got Null.

@Prop({ validator: v => typeof v === 'object' })
// Let's undefined through, so when I don't specify the prop, I get no warnings
// making the validator …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component

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