我能够模拟警报以测试它的警报方法正在被调用,但我真正想要测试的是按下警报中的确定按钮.
import { Alert } from 'react-native';
it('Mocking Alert', () => {
jest.mock('Alert', () => {
return {
alert: jest.fn()
}
};
});
const spy = jest.spyOn(Alert, 'alert');
const wrapper = shallow(<Search />);
wrapper.findWhere(n => n.props().title == 'Submit').simulate('Press');
expect(spy).toHaveBeenCalled(); //passes
})
Run Code Online (Sandbox Code Playgroud)
我绝对不确定如何测试它.这是我试图测试的通用组件.
export default class Search extends Component{
state = {
someState: false
}
confirmSubmit(){
this.setState(state => ({someState: !state.someState}))
}
onPress = () => {
Alert.alert(
'Confirm',
'Are you sure?'
[{text: 'Ok', onPress: this.confirmSubmit}] //<-- want to test this
) …
Run Code Online (Sandbox Code Playgroud) 所以我试图根据谷歌文本搜索获取详细信息.我的文本搜索工作正常,但为了获取详细信息,我不断收到"无效请求".
我已经按照文档中的例子,以及其他人的例子,但无济于事,我失败了....
这是我的文本搜索,它正在运行.
var lat = '43.09182244507046'
var lng = '-89.48985488807972'
var places;
function initialize() {
var location = new google.maps.LatLng(lat,lng);
var map = new google.maps.Map(document.getElementById('map'),{
center: location,
zoom: 15
});
var request = {
location: location,
radius: '50000',
query: 'food'
};
var callback = function (results, status) {
places = results;
console.log(status);
console.log(places);
}
var service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);
}
Run Code Online (Sandbox Code Playgroud)
这是我的地方详细信息搜索,它获得了无效的请求状态
var place_details;
function getDetails() {
var location = new google.maps.LatLng(lat,lng);
var map = new google.maps.Map(document.getElementById('map'),{
center: …
Run Code Online (Sandbox Code Playgroud) 所以我已经构建了一个 web 应用程序,并在 Ionic 中制作了一个相应的移动应用程序。我想制作一个渐进式网络应用程序,因为它会让我的生活更轻松,但我想 Apple 还不支持这个。
(ps我对这个东西很陌生)
所以我使用 id.me api 来验证军事服务,它在重定向 uri 中发回一个访问令牌以发出 api 请求。
有两种方法可以做到这一点,通过我的服务器或通过客户端。
这是他们的网络流 https://developer.id.me/documentation#oauth-overview
这就是我迷路的地方 Ionic ....
因此,要启动 webflow,我必须将用户发送到 id.me 的授权端点,我将在 inappbrowser 中执行此操作
https://api.id.me/oauth/authorize?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token&scope=SCOPE
Run Code Online (Sandbox Code Playgroud)
id.me 在重定向时发回访问令牌...
从那里,我可以获取令牌,将其保存到本地存储并关闭 inAppBrowser。我不知道在哪里设置uri?是本地主机吗?当您在您的平台上构建 Ionic 时,是否在本地服务器上运行?
我会做这样的事情吗?
angular.module('myApp', ['ionic', 'ngCordova']).controller('AppCtrl',
function($rootScope, $ionicPlatform, $cordovaInAppBrowser) {
var callback = 'http://localhost:8100/callback';
$scope.idAuth = function() {
$ionicPlatform.ready(function() {
var options = {
location: 'yes',
clearcache: 'no',
toolbar: 'yes'
};
$cordovaInAppBrowser.open('https://api.id.me/oauth/authorize?client_id=CLIENT-ID&redirect_uri=callback&response_type=token&scope=SCOPE', '_blank', options)
});
};
$rootScope.$on('$cordovaInAppBrowser:loadstart', function(e, event) {
//and this function is called, so you …
Run Code Online (Sandbox Code Playgroud)