我有一个不稳定的应用程序,正在编写一个测试用例,将应用程序的currentVersion与可用的LatestVersion进行比较。该函数仅获取currentVersion和LatestVersion的值,并根据currentVersion
我正在使用get_version插件提取应用程序的currentVersion。 LatestVersion的值比用于测试目的的值大。
此调用在应用程序的其余部分中也有效。它仅在测试用例中产生问题。
我尝试从0.0.8升级到0.1.0,但没有成功。
void main() {
test('checkAppVersion', () async {
String currentVersion = await GetVersion.projectVersion;
expect(
checkAppVersionTest(
Version.parse(currentVersion), Version.parse(latestVersion)),
true);
});
}
bool checkAppVersionTest(Version currentVersion, Version latestVersion) { bool updateRequired = false;
if (currentVersion < latestVersion) {
updateRequired = true;
}
return updateRequired;
}
我收到以下错误:
当我对currentVersion值进行硬编码时,效果很好。
请提出解决方法。
最佳答案
我假设您使用的是Android Studio或类似版本,然后单击“播放”按钮运行测试。
我尝试了这个,并得到了与您相同的结果。
但是,似乎该测试实际上并未通过单击此按钮在设备上运行-这是插件所必需的,因此通过从终端运行它并指定文件-似乎可以正常运行:
flutter run test.dart
您将需要在main()的第一行添加以下内容,否则将收到其他错误:
TestWidgetsFlutterBinding.ensureInitialized();
最终代码:
import 'package:flutter_test/flutter_test.dart';
import 'package:get_version/get_version.dart';
import 'package:pub_semver/pub_semver.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
test('checkAppVersion', () async {
String currentVersion = await GetVersion.projectVersion;
String latestVersion = '0.0.1';
expect(checkAppVersionTest(Version.parse(currentVersion), Version.parse(latestVersion)), false);
});
}
bool checkAppVersionTest(Version currentVersion, Version latestVersion) {
bool updateRequired = false;
if (currentVersion < latestVersion) {
updateRequired = true;
}
return updateRequired;
}
如果有人在正常运行您的应用程序时遇到类似问题,请尝试终止您的应用程序并运行
终端中的
flutter clean
。关于testing - 如何修复由get_version插件引起的MissingPluginException(package_info)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55595718/