有人可以帮我在 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) 我正面临一个问题,我试图LocalizationsDelegates在MaterialApp.
我正在使用 Dartintl工具为我的标签提供翻译。当我只有多个LocalizationsDelegates指定的一个时,第一个获取翻译的值。下一个委托的标签,获取Intl.message()函数中提供的默认值。
我在 GitHub 上设置了一个最小项目作为此问题的示例。
在 中MaterialApp,我定义了一堆localizationsDelegates,包括两个特定于应用程序的:DogLocalizationsDelegate和CatLocalizationsDelegate。
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) 当JavaFX阶段失去它的焦点时,我怎么能运行一段代码(或更确切地说:关闭舞台)?
例如,在Dropbox或Chrome中:如果单击托盘图标,则会打开一个小窗口.如果您现在单击屏幕上的任意位置,窗口将关闭.这正是我想在JavaFX应用程序中创建的行为.
我已经搜索了很长时间才找到解决方案,但找不到一个......
所以,我正在寻找类似这样的东西:
stage.addEventHandler(EventType.FOCUS_LOST, new EventHandler() { /*...*/ } );
Run Code Online (Sandbox Code Playgroud)
谢谢你帮助我!
就性能/成本而言,最昂贵的小部件是什么?如果我可以选择ValueListenableBuilder和StreamBuilder监听一个变量的变化,我应该使用什么?
我一直在尝试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) 我知道如何View使用LinearLayout.LayoutParams和方法以编程方式设置边距setMargins(int, int, int, int)但是如何在视图上设置负边距?
我正在尝试比较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.
有人可以告诉我它为什么不过滤?谢谢
我注意到有关的位置有问题MediaController的VideoView内部Fragment.以下是运行Android 4.3的Nexus 7的外观截图:

这是运行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)
有人知道我怎么能正确定位吗?
在我的Activity中,我有一个lateinit名为controllerFragment使用的属性.此属性已初始化Activity.onCreate().我Fragment得到它的参考回到我Activity通过onAttach().在Fragment随后调用myActivity.controller在Fragment.onCreate().
通常controller首先在其中初始化Activity.onCreate(),然后Fragment添加.所以这很好用.
但是当我Activity被杀死时,它会试图重建自己及其碎片.这导致在初始化发生之前Fragment.onCreate()被调用.Activity.onCreate()
这些是我现在看到的选项:
controller之前初始化super.onCreate()(如果可能的话)myActivity.controller到以后的生命周期回调,如onViewCreated()::controller.isInitializedKotlin 1.2中提供的东西这是我最好的选择?
我创建了一个Java返回a 的Web服务DataHandler.这必须能够返回一个File,工作正常.但它也应该能够返回一个String.知道我怎么可以转移String一个DataHandler?
android ×5
java ×3
android-view ×2
flutter ×2
dart-intl ×1
datahandler ×1
ecmascript-6 ×1
events ×1
focus ×1
javafx-2 ×1
javascript ×1
jestjs ×1
kotlin ×1
stage ×1
string ×1
web-services ×1