首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以为使用Xamarin.Essentials: Geolocation API的函数创建单元测试吗?

可以为使用Xamarin.Essentials: Geolocation API的函数创建单元测试吗?
EN

Stack Overflow用户
提问于 2019-11-06 21:24:30
回答 1查看 1.2K关注 0票数 3

在我的Locationer类中,我有一个使用Xamarin.Essentials: Geolocation的函数GetLocationAsync()。这个函数运行得很好,但是我想为这个函数创建单元测试。

我创建了xUnitTests项目和单元测试:

代码语言:javascript
复制
public async Task LocationTest()
{
    Locationer locationer = new Locationer();
    var actual = locationer.GetLocationAsync();

    Assert.Equal("test", actual);
}

在Xamarin Forms项目中,GetLocationAsync()返回“纬度: 46.55465,经度: 15.64588,高度: 262”。

在我的单元测试中,GetLocationAsync()返回“此功能未在此程序集的可移植版本中实现”

可以在我的单元测试项目中使用Xamarin.Essentials: Geolocation吗?我怎么才能修复它?

EN

回答 1

Stack Overflow用户

发布于 2019-11-06 21:42:18

Ryan Davis创建了基于Xamarin.Essentials的接口:https://www.nuget.org/packages/Xamarin.Essentials.Interfaces/

通过这种方式,您可以在IoC容器中注册Essentials实现:

代码语言:javascript
复制
builder.Register<IGeolocation, GeolocationImplementation>();

你可以用类似Moq的东西来模拟接口:

代码语言:javascript
复制
var mockGeo = new Mock<IGeolocation>();
mockGeo.Setup(x => x.GetLocationAsync())
   .ReturnsAsync(() => new Location());
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58731228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档