どういうわけかDartで単体テストを読んだ後、sでそれを使用する方法をまだ理解できませんFuture
。
例えば:
void main()
{
group('database group',(){
setUp( () {
// Setup
});
tearDown((){
// TearDown
});
test('open connection to local database', (){
DatabaseBase database = null;
expect(database = new MongoDatabase("127.0.0.8", "simplechat-db"), isNotNull);
database.AddMessage(null).then(
(e) {
expectAsync1(e)
{
// All ok
}
},
onError: (err)
{
expectAsync1(bb)
{
fail('error !');
}
}
);
});
// Add more tests here
}); }
したがって、テストでは、実際のMongoDbDatabaseBase
クラスへのいくつかのパラメーターを使用して基本抽象クラスのインスタンスを作成し、作成されたかどうかをすぐに確認します。次に、非常に単純な関数を実行するだけです。この関数は次のように定義されます。AddMessage
Future AddMessage(String message);
と戻りcompleter.future
ます。
渡された値message
が null の場合、関数は次のように失敗します。.completeError('Message can not be null');
Future
実際のテストでは、正常に完了したかエラーが発生したかをテストしたいと考えています。したがって、これは返品をテストする方法を理解するための私の試みですFuture
-問題は、このテストが失敗しないことです :(
を返す関数をテストする方法の小さなコード例を答えに書いていただけますFuture
か? そして、テストでは、戻り値(成功時)をテストし、成功値が正しくない場合はテストに失敗し、別のテストが失敗すると、関数は失敗してブロックFuture
に入ります。onError: