繁体   English   中英

Dart Async unittest

[英]Dart Async unittest

我正在尝试将以下Node.js测试转换为Dart:

var fs = require('fs');
exports.asyncTest = function(test){
  fs.stat('test.txt', function(err, stats) {
    test.expect(2);
    test.strictEqual(err, null);
    test.notStrictEqual(stats.size, 0);
    test.done();
  })
};

到目前为止,我有:

import 'package:unittest/unittest.dart';
import 'dart:io';

main() {
  test('File is not empty', () {
    var stats = new File('test.txt').length().then(
      expectAsync1((v) {
        expect(v, isNot(0));
      }));
  });
}

这有效,但我希望测试失败,而不是在找不到文件时终止。 这是如何完成的?

您可以在File上使用exists()方法。 File.exists()返回Future <bool>,所以做这样的事情。

main(){
  test('File Exists, and is not empty', () {
    var f = new File('test.txt');
    f.exists().then(expectAsync1((v) {
      expect(v, true);
      if (v)
        f.length().then(expectAsync1((l) => expect(l, isNot(0))));
    }));
  });
}

当然,如果进行两次测试,这将会更漂亮。 “文件存在”和“非空文件”,后者仅在第一个文件通过时运行。 但是我还没有充分考虑unittest库,看看如何让测试依赖于彼此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM