我想用茉莉花节点测试一些承诺。但是,测试运行但它说有0个断言。这是我的代码,有什么不对吗?成功调用then部分,所以如果我有一个console.log,它就会被调用。如果我有代码测试一个http请求,那么在成功时,断言就会被正确解释。
var contactStore = await ContactManager.RequestStoreAsync();
var contacts = await contactStore.FindContactsAsync();
var myContact = contacts[0]; //I am sure that this Contact has a Thumbnail
var stream = await myContact.Thumbnail.OpenReadAsync();
byte[] buffer = new byte[stream.Size];
var readBuffer = await stream.ReadAsync(buffer.AsBuffer(), (uint)buffer.Length, InputStreamOptions.None);
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("image.jpg", CreationCollisionOption.ReplaceExisting);
var fileStream = await file.OpenStreamForWriteAsync();
await fileStream.WriteAsync(readBuffer.ToArray(), 0, (int)readBuffer.Length);
});
答案 0 :(得分:3)
您需要为传递给done
的回调指定it
参数,因此Jasmine知道您正在异步测试某些内容:
it("contains spec with an expectation", function(done) {
// ...
当您包含该参数时,Jasmine会等待一段时间让您拨打done
,以便知道您何时完成。
done();
其次,在异步测试中,通过调用done.fail
失败可能更好:
done.fail();