小编dum*_*azy的帖子

手动模拟不适用于 Jest

有人可以帮我在 Jest 中手动模拟吗?:) 我尝试让 Jest 使用模拟而不是实际模块。

我的测试:

// __tests__/mockTest.js

import ModuleA from "../src/ModuleA"

describe("ModuleA", () => {
    beforeEach(() => {
        jest.mock("../src/ModuleA")
    })

    it("should return the mock name", () => {
        const name = ModuleA.getModuleName()
        expect(name).toBe("mockModuleA")
    })
})
Run Code Online (Sandbox Code Playgroud)

我的代码:

// src/ModuleA.js
export default {
    getModuleName: () => "moduleA"
}

// src/__mocks__/ModuleA.js
export default {
    getModuleName: () => "mockModuleA"
}
Run Code Online (Sandbox Code Playgroud)

我想我遵循了文档中关于手动模拟的所有内容,但也许我在这里忽略了一些东西?这是我的结果:

Expected value to be:
      "mockModuleA"
Received:
      "moduleA"
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 jestjs

11
推荐指数
1
解决办法
2万
查看次数

在 Flutter 中使用多个 LocalizationsDelegates

我正面临一个问题,我试图LocalizationsDelegatesMaterialApp.

我正在使用 Dartintl工具为我的标签提供翻译。当我只有多个LocalizationsDelegates指定的一个时,第一个获取翻译的值。下一个委托的标签,获取Intl.message()函数中提供的默认值。

简短的、自包含的、正确的例子

在 GitHub 上设置了一个最小项目作为此问题的示例。

代码片段

在 中MaterialApp,我定义了一堆localizationsDelegates,包括两个特定于应用程序的:DogLocalizationsDelegateCatLocalizationsDelegate

MaterialApp(
  // other properties
  locale: Locale("en"),
  localizationsDelegates: [
    CatLocalizationsDelegate(),
    DogLocalizationsDelegate(),
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: [
    const Locale('en'),
    const Locale('nl'),
  ],
);
Run Code Online (Sandbox Code Playgroud)

代表具有相同的样板代码,但提供不同的标签。这是DogLocalizations和它的DogLocalizationsDelegate样子。

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'messages_all.dart';

class DogLocalizations {
  static Future<DogLocalizations> load(Locale locale) {
    final String name = locale.languageCode;
    final String localeName = …
Run Code Online (Sandbox Code Playgroud)

internationalization flutter dart-intl

10
推荐指数
1
解决办法
2202
查看次数

窗口/舞台失去焦点时的事件

当JavaFX阶段失去它的焦点时,我怎么能运行一段代码(或更确切地说:关闭舞台)?

例如,在Dropbox或Chrome中:如果单击托盘图标,则会打开一个小窗口.如果您现在单击屏幕上的任意位置,窗口将关闭.这正是我想在JavaFX应用程序中创建的行为.

我已经搜索了很长时间才找到解决方案,但找不到一个......
所以,我正在寻找类似这样的东西:

stage.addEventHandler(EventType.FOCUS_LOST, new EventHandler() { /*...*/ } );
Run Code Online (Sandbox Code Playgroud)


谢谢你帮助我!

java events focus stage javafx-2

9
推荐指数
1
解决办法
7225
查看次数

ValueListenableBuilder 还是 StreamBuilder?

就性能/成本而言,最昂贵的小部件是什么?如果我可以选择ValueListenableBuilderStreamBuilder监听一个变量的变化,我应该使用什么?

flutter

9
推荐指数
1
解决办法
1017
查看次数

Google跟踪代码管理器会抛出"无效的宏"消息

我一直在尝试Google Tag Manager为移动设备,特别是Android的,但我不断收到一条消息说"无效的宏"当试图getString(myKeyValue对)Container.

这是我的MainActivity中代码的一部分:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtHello = (TextView)findViewById(R.id.txtHello);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                String hello = mContainer.getString("hello");
                long l = mContainer.getLong("long");
                txtHello.setText(hello + l);
            }
        });
        tagManager = TagManager.getInstance(this);
        ContainerOpener.openContainer(tagManager, CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null, new ContainerOpener.Notifier() {


        @Override
        public void containerAvailable(Container container) {
            mContainer = container;

        }

    });


}
Run Code Online (Sandbox Code Playgroud)

我在清单中添加了这些权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

我有正确的Container_id,因为它以编程方式刷新后显示正确的版本.

这是我的assets/tagmanager/CONTAINER_ID.json文件(当然使用正确的文件名):

{
'hello': …
Run Code Online (Sandbox Code Playgroud)

android google-tag-manager

8
推荐指数
1
解决办法
4043
查看次数

以编程方式在View上设置负边距

我知道如何View使用LinearLayout.LayoutParams和方法以编程方式设置边距setMargins(int, int, int, int)但是如何在视图上设置负边距?

android android-layout android-view

7
推荐指数
1
解决办法
4640
查看次数

与Parse.com比较日期

我正在尝试比较ParseQuery的一些日期.它不会给我错误,但它不会过滤日期.这是一些代码:

if(dateFrom!=null){
        query.whereLessThanOrEqualTo("from", dateFrom);
    }
    if(dateTo!=null){
        query.whereGreaterThanOrEqualTo("to", dateTo);
    }
Run Code Online (Sandbox Code Playgroud)

date是java.util.Date(不是sql)

Date dateFrom = new Date(fromYear,fromMonth,fromDay,fromHour,fromMinute);

    Date dateTo = new Date(toYear,toMonth,toDay,toHour,toMinute);
Run Code Online (Sandbox Code Playgroud)

当我在parse.com上查看我的ParseObjects时,我看到对象得到了dateFrom和dateTo.

有人可以告诉我它为什么不过滤?谢谢

java android parse-platform

6
推荐指数
1
解决办法
5460
查看次数

在Fragment中定位MediaController

我注意到有关的位置有问题MediaControllerVideoView内部Fragment.以下是运行Android 4.3的Nexus 7的外观截图: 在4.3上使用MediaController的应用程序的屏幕截图

这是运行Android 4.2.2的Nexus 7上应用程序的屏幕截图: 在此输入图像描述

正如您所看到的,MediaController的位置位于我的API 17或更低版​​本的活动中间(在另一个平板电脑上测试4.1.2).我注意到MediaController的大小是正确的.

My Fragment显示在FrameLayout中,其宽度由其权重(此处为0.6)定义,因此不是特定的dpi值.

我已经检查了Grepcode上的MediaController的源代码,并将4.3中的一个与4.2.2的代码进行了比较,并且LayoutParams有一些小的变化,但我找不到一种方法来使这个工作.

我在我的片段的onActivityCreated()中初始化我的VideoView和MediaController

mMediaController = new MediaController(getActivity());
mMediaController.setAnchorView(videoView);
videoView.setMediaController(mMediaController);
Run Code Online (Sandbox Code Playgroud)

有人知道我怎么能正确定位吗?

android android-mediaplayer android-view

6
推荐指数
1
解决办法
2855
查看次数

在重新创建活动时未初始化lateinit属性

在我的Activity中,我有一个lateinit名为controllerFragment使用的属性.此属性已初始化Activity.onCreate().我Fragment得到它的参考回到我Activity通过onAttach().在Fragment随后调用myActivity.controllerFragment.onCreate().

通常controller首先在其中初始化Activity.onCreate(),然后Fragment添加.所以这很好用.

但是当我Activity被杀死时,它会试图重建自己及其碎片.这导致在初始化发生之前Fragment.onCreate()被调用.Activity.onCreate()

这些是我现在看到的选项:

  • controller之前初始化super.onCreate()(如果可能的话)
  • 将调用转移myActivity.controller到以后的生命周期回调,如onViewCreated()
  • ::controller.isInitializedKotlin 1.2中提供的东西

这是我最好的选择?

android android-fragments kotlin kotlin-lateinit

6
推荐指数
1
解决办法
1097
查看次数

返回DataHandler中的字符串

我创建了一个Java返回a 的Web服务DataHandler.这必须能够返回一个File,工作正常.但它也应该能够返回一个String.知道我怎么可以转移String一个DataHandler

java string web-services datahandler

5
推荐指数
1
解决办法
6486
查看次数