Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 颤振:';软件包:共享首选项/共享首选项。dart';:断言失败:第33行第16位:';key.startsWith(_前缀)和#x27;:事实并非如此_Unit Testing_Dart_Flutter_Sharedpreferences - Fatal编程技术网

Unit testing 颤振:';软件包:共享首选项/共享首选项。dart';:断言失败:第33行第16位:';key.startsWith(_前缀)和#x27;:事实并非如此

Unit testing 颤振:';软件包:共享首选项/共享首选项。dart';:断言失败:第33行第16位:';key.startsWith(_前缀)和#x27;:事实并非如此,unit-testing,dart,flutter,sharedpreferences,Unit Testing,Dart,Flutter,Sharedpreferences,我正在对共享首选项运行一些单元测试。我制作了一个helper类,这样我们就不必反复编写相同的代码 无论我尝试什么,我总是一次又一次地犯同样的错误。 您将找到我正在测试的类、测试类和stacktrace 我希望我忘记了一些愚蠢的事情。 我尝试了以下资源: 共享的\u首选项\u助手\u test.dart: import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; imp

我正在对共享首选项运行一些单元测试。我制作了一个helper类,这样我们就不必反复编写相同的代码

无论我尝试什么,我总是一次又一次地犯同样的错误。 您将找到我正在测试的类、测试类和stacktrace

我希望我忘记了一些愚蠢的事情。 我尝试了以下资源:

共享的\u首选项\u助手\u test.dart:

import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:shoppaworld_client_app/shared_preferences_helper.dart';

// at the moment testing
void main() {

  SharedPreferencesHelper sharedPreferencesHelper;

  setUpAll(() {
    sharedPreferencesHelper = SharedPreferencesHelper();

    const MethodChannel('plugins.flutter.io/shared_preferences')
        .setMockMethodCallHandler((MethodCall methodCall) async {
      if (methodCall.method == 'getAll') {
        return <String, dynamic> {
          'test-string' : 'string-value',
          'test-int' : 420,
          'test-bool' : true
        }; // set initial values here if desired
      }
      return null;
    });

  });

  test('test if the testing works', () async {

    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    sharedPreferences.setString('test-string-infunction', 'wow');
    var value = sharedPreferences.getString('test-string-infunction');


    print(value);
    expect(value, 'wow');

  });

  group('unit test 1: read shared preferences', () {

    test('shared preferences string', () async {

      String value = await sharedPreferencesHelper.readValueFromKey("test-string");

      print(value);
      expect(value, 'string-value');

    });
    test('shared preferences empty', () async {

      var value = await sharedPreferencesHelper.readValueFromKey("does_not_exist");

      expect(value, null);

    });

  });


  group('unit test 2: write shared preferences', () {
    test('shared preferences string', () async {
      var originalValue = 'test';
      var value = await sharedPreferencesHelper.writeValueToKey("test-string", valueString: originalValue);

      SharedPreferences sharedPreferences = await SharedPreferences.getInstance();


      expect(sharedPreferences.getString('test-string'), originalValue);

    });
    test('shared preferences int', () async {

      var originalValue = 420;
      var value = await sharedPreferencesHelper.writeValueToKey("test-int", valueInt: originalValue);

      SharedPreferences sharedPreferences = await SharedPreferences.getInstance();

      expect(sharedPreferences.getInt('test-int'), originalValue);

    });

    test('shared preferences bool', () async {
      var originalValue = true;
      var value = await sharedPreferencesHelper.writeValueToKey("test-bool", valueBool: originalValue);
      SharedPreferences sharedPreferences = await SharedPreferences.getInstance();

      expect(sharedPreferences.getBool('test-bool'), originalValue);

    });
  });
}
import'package:flatter/services.dart';
进口“包装:颤振试验/颤振试验.dart”;
导入“package:shared_preferences/shared_preferences.dart”;
导入“package:shoppaworld_client_app/shared_preferences_helper.dart”;
//目前正在进行测试
void main(){
SharedPreferenceHelper SharedPreferenceHelper;
setUpAll((){
SharedPreferenceHelper=SharedPreferenceHelper();
const MethodChannel('plugins.flatter.io/shared_preferences')
.setMockMethodCallHandler((MethodCall MethodCall)异步{
if(methodCall.method=='getAll'){
返回{
“测试字符串”:“字符串值”,
“测试int”:420,
“测试布尔”:真
};//如果需要,在此处设置初始值
}
返回null;
});
});
test('测试是否有效',()异步{
SharedReferences SharedReferences=等待SharedReferences.getInstance();
setString('test-string-infunction','wow');
var value=SharedReferences.getString('test-string-infunction');
印刷品(价值);
期望值(value,'wow');
});
组('单元测试1:读取共享首选项',(){
测试('共享首选项字符串',()异步{
字符串值=等待SharedReferencesHelper.readValueFromKey(“测试字符串”);
印刷品(价值);
expect(值,'字符串值');
});
测试('共享首选项为空',()异步{
var value=等待SharedReferencesHelper.readValueFromKey(“不存在”);
expect(值,null);
});
});
组('单元测试2:写入共享首选项',(){
测试('共享首选项字符串',()异步{
var原始值=‘测试’;
var value=await SharedReferencesHelper.writeValueToKey(“测试字符串”,valueString:originalValue);
SharedReferences SharedReferences=等待SharedReferences.getInstance();
expect(SharedReferences.getString('test-string'),originalValue);
});
测试('shared preferences int',()异步{
var原始值=420;
var value=await SharedReferencesHelper.writeValueToKey(“test int”,valueInt:originalValue);
SharedReferences SharedReferences=等待SharedReferences.getInstance();
expect(SharedReferences.getInt('test-int'),originalValue);
});
测试('共享首选项布尔',()异步{
var originalValue=真;
var value=await SharedReferencesHelper.writeValueToKey(“测试bool”,valueBool:originalValue);
SharedReferences SharedReferences=等待SharedReferences.getInstance();
expect(sharedPreferences.getBool('test-bool'),originalValue);
});
});
}
共享的\u首选项\u helper.dart:

import 'dart:async';

import 'package:shared_preferences/shared_preferences.dart';



// this class is meant to relieve developers from boilerplate code
class SharedPreferencesHelper {

  Future<dynamic> readValueFromKey(String key) async {
    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    return sharedPreferences.get(key) ?? null;
  }

  writeValueToKey(String key, {String valueString, bool valueBool, int valueInt}) async {
    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    if(valueString != null){
      sharedPreferences.setString(key, valueString);
    }
    if(valueBool != null) {
      sharedPreferences.setBool(key, valueBool);
    }
    if(valueInt != null) {
      sharedPreferences.setInt(key, valueInt);
    }
  }

}
导入'dart:async';
导入“package:shared_preferences/shared_preferences.dart”;
//该类旨在使开发人员从样板代码中解脱出来
类SharedReferencesHelper{
未来readValueFromKey(字符串键)异步{
SharedReferences SharedReferences=等待SharedReferences.getInstance();
返回SharedReferences.get(key)??空;
}
writeValueToKey(字符串键,{String valueString,bool valueBool,int valueInt})异步{
SharedReferences SharedReferences=等待SharedReferences.getInstance();
if(valueString!=null){
设置字符串(键,值字符串);
}
如果(valueBool!=null){
setBool(key,valueBool);
}
如果(valueInt!=null){
setInt(key,valueInt);
}
}
}
堆栈跟踪:

Testing started at 12:10 ...
/home/geordy/SoftwareDevelopment/flutter/flutter_linux_v1.2.1-stable/flutter/bin/flutter --no-color test --machine test/shared_preferences_helper_test.dart
dart:core                                                 _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16  SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart        SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart        SharedPreferences.getInstance
test/shared_preferences_helper_test.dart 30:67            main.<fn>

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.

dart:core                                                            _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16             SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
package:shoppaworld_client_app/shared_preferences_helper.dart 20:67  SharedPreferencesHelper.readValueFromKey

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.

dart:core                                                            _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16             SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
package:shoppaworld_client_app/shared_preferences_helper.dart 20:67  SharedPreferencesHelper.readValueFromKey

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.

dart:core                                                            _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16             SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
package:shoppaworld_client_app/shared_preferences_helper.dart 25:67  SharedPreferencesHelper.writeValueToKey

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.

dart:core                                                            _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16             SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
package:shoppaworld_client_app/shared_preferences_helper.dart 25:67  SharedPreferencesHelper.writeValueToKey

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.

dart:core                                                            _AssertionError._throwNew
package:shared_preferences/shared_preferences.dart 33:16             SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _AsyncAwaitCompleter.completeError
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
===== asynchronous gap ===========================
dart:async                                                           _asyncThenWrapperHelper
package:shared_preferences/shared_preferences.dart                   SharedPreferences.getInstance
package:shoppaworld_client_app/shared_preferences_helper.dart 25:67  SharedPreferencesHelper.writeValueToKey

'package:shared_preferences/shared_preferences.dart': Failed assertion: line 33 pos 16: 'key.startsWith(_prefix)': is not true.
测试在12:10开始。。。
/home/geordy/SoftwareDevelopment/flatter/flatter\u linux\u v1.2.1-stable/flatter/bin/flatter--无颜色测试--机器测试/共享首选项\u helper\u test.dart
飞镖:核心-断言者-投掷者
包:shared_preferences/shared_preferences.dart 33:16 SharedPreferences.getInstance
======异步间隙===========================
dart:async\u AsyncAwaitCompleter.completeError
包:shared_preferences/shared_preferences.dart SharedPreferences.getInstance
======异步间隙===========================
dart:async\u asyncThenWrapperHelper
包:shared_preferences/shared_preferences.dart SharedPreferences.getInstance
测试/共享\u首选项\u助手\u测试。dart 30:67主。
“package:shared_preferences/shared_preferences.dart”:失败的断言:第33行第16位:“key.startsWith(_prefix)”:不正确。
飞镖:核心-断言者-投掷者
包:shared_preferences/shared_preferences.dart 33:16 SharedPreferences.getInstance
======异步间隙===========================
dart:async\u AsyncAwaitCompleter.completeError
包:shared_preferences/shared_preferences.dart SharedPreferences.getInstance
======异步间隙===========================
dart:async\u asyncThenWrapperHelper
包:shared_preferences/shared_preferences.dart SharedPreferences.getInstance
套餐:shoppaworld\u client\u app/shared\u preferences\u helper.dart 20:67 SharedReferencesHelper.readValueFromKey
“package:shared_preferences/shared_preferences.dart”:失败的断言:第33行第16位:“key.startsWith”
  if (methodCall.method == 'getAll') {
    return <String, dynamic> {
      'test-string' : 'string-value',
      'test-int' : 420,
      'test-bool' : true
    }; // set initial values here if desired
  if (methodCall.method == 'getAll') {
    return <String, dynamic> {
      'flutter.test-string' : 'string-value',
      'flutter.test-int' : 420,
      'flutter.test-bool' : true
    }; // set initial values here if desired