小编twi*_*wiz的帖子

Android单元测试无法找到Mockito包

我正在使用带有Gradle的Android Studio,我正在尝试在单元测试中使用Mockito.问题是我在运行测试时收到以下错误:

错误:任务':app:compileDebugJava'的执行失败.

编译失败; 请参阅编译器错误输出以获取详细信

错误:(9,19)错误:包org.mockito不存在

错误:(11,26)错误:包org.mockito不存在

错误:(19,9)错误:找不到符号变量MockitoAnnotations

我的build.gradle文件只不过是添加了Mockito依赖项的默认文件:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:appcompat-v7:19.+'


    ////////////////////////////////////////////////
    // These are the only lines I added:

    androidTestCompile 'org.mockito:mockito-core:1.9.5' …
Run Code Online (Sandbox Code Playgroud)

classpath mockito android-studio android-gradle-plugin

8
推荐指数
2
解决办法
6629
查看次数

在无头LibGDX单元测试中创建纹理

我正在使用LibGDX无头后端来运行jUnit测试.这适用于某些测试,但如果我尝试创建一个new Texture('myTexture.png');,我会得到一个NullPointerException.确切的错误是:

java.lang.NullPointerException
    at com.badlogic.gdx.graphics.GLTexture.createGLHandle(GLTexture.java:207)
Run Code Online (Sandbox Code Playgroud)

为了简单起见,我创建了一个除了加载纹理之外什么都不做的方法:

public class TextureLoader {
    public Texture load(){
        return new Texture("badlogic.jpg");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我的测试类看起来像这样:

public class TextureTest {

    @Before
    public void before(){
        final HeadlessApplicationConfiguration config = new HeadlessApplicationConfiguration();
        new HeadlessApplication(new ApplicationListener() {
            // Override necessary methods
            ...
        }, config);
    }

    @Test
    public void shouldCreateTexture() {
        TextureLoader loader = new TextureLoader();
        assertNotNull( loader.load() );
    }
}
Run Code Online (Sandbox Code Playgroud)

这个方法在我的实际应用程序中正常工作,而不是在单元测试中.

如何使用HeadlessApplication该类加载纹理?

opengl junit headless libgdx

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

Fastlane iOS 应用程序“加密导出合规性”豁免

我正在设置Fastlane以简化将我的 iOS 应用程序更新提交到App Store Connect的过程。我的应用程序仅对 HTTPS 请求使用加密,因此被认为无需提供文档。(这些是通过 App Store Connect 网站提交新版本时提出的问题。)

当您指定加密导出合规性设置时,Fastlane 需要的不仅仅是这两个问题。这些是在upload_to_app_store操作的参数下设置的submission_information

这是我目前所拥有的,但我不确定它是否正确:

upload_to_app_store(
    submission_information: {
        export_compliance_platform: 'ios',
        export_compliance_uses_encryption: true,
        export_compliance_is_exempt: true,

        # These are the ones I am confused by
        export_compliance_compliance_required: false,
        export_compliance_encryption_updated: false,
        export_compliance_app_type: nil,
        export_compliance_contains_third_party_cryptography: false,
        export_compliance_contains_proprietary_cryptography: false,
        export_compliance_available_on_french_store: false
    }
)
Run Code Online (Sandbox Code Playgroud)

最后 6 个字段对我来说非常不清楚。不幸的是 Fastlane 提供的文档很少,因为他们只是复制了 Apple 的非公开 API 使用的字段

我怎样才能找出正确的值应该是什么?

fastlane app-store-connect

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

如何将.obj文件转换为Android openGL?

我有一个.obj文件(3D模型),但我不知道如何将其加载到Android openGL中.这是如何完成的?

是否有关于此主题的分步教程?

java android opengl-es

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

3D CSS转换:translateZ导致元素在Chrome中消失

我正在使用Javascript来操纵Chrome中的CSS变换,我注意到当translateZ值太低(远处)时,元素将消失.只有在存在大量元素时才会出现这种情况.

看起来这可能与z-index元素有关.

以下是该问题的示例:http: //jsbin.com/iZAYaRI/26/edit

将鼠标悬停在输出上以查看问题.

有谁知道为什么会这样?


更新: 似乎该元素实际上并没有消失,而是正在移动一千个像素左右.

javascript z-index css3 translate3d

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

Firestore 文档 ID 的有效字符

我似乎无法在 Firestore 文档中找到以下信息:

  1. 在文档 ID 中使用哪些字符是有效的?
  2. 什么字符集用于生成 Firestore AutoID

firebase google-cloud-firestore

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

没有 React <Mutation> 组件的 Apollo 突变

Apollo 的<Mutation>组件通常运行良好,但有时您需要在render()方法。

在某些情况下,您可以简单地传递突变函数,如下所示:

import React, { Component } from "react";
import { DO_MUTATION } from "./mutations";
import { Mutation } from "react-apollo";

export default class MyComponent extends Component {
    render() {
        return (
            <Mutation mutation={DO_MUTATION}>
                {(doMutation) => (
                    <Button
                        onPress={() => {
                            this.handleSomething(doMutation);
                        }}
                    />
                )}
            </Mutation>
        );
    }

    handleSomething = (doMutation) => {
        /* DO SOME STUFF */
        doMutation();
    };
}
Run Code Online (Sandbox Code Playgroud)

但在其他情况下,这不是一个非常合理的选择,例如:

import React, { Component } from "react";
import { DO_MUTATION } from "./mutations"; …
Run Code Online (Sandbox Code Playgroud)

react-apollo

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

PhantomJS API可以与grunt(grunt-contrib-jasmine)一起使用吗?

我正在使用Grunt使用grunt-contrib-jasmine(https://github.com/gruntjs/grunt-contrib-jasmine)通过PhantomJS运行Jasmine测试

我的问题是我无法弄清楚如何通过这个grunt任务使用PhantomJS API.

具体来说,我想模拟用户向a添加文件<input type='file'>.使用命令行API,您可以使用以下内容运行.js文件:

var webPage = require('webpage');
var page = webPage.create();

page.uploadFile('input[name=image]', '/path/to/some/photo.jpg');
Run Code Online (Sandbox Code Playgroud)

(http://phantomjs.org/api/webpage/method/upload-file.html)

是否可以在Jasmine测试运行之前运行这样的脚本?

javascript phantomjs gruntjs

5
推荐指数
0
解决办法
155
查看次数

如何修复“无法加载目标的共享库‘libgdx64.so’:Linux,64位”

我正在尝试使用无头 LibGDX 进行单元测试,但是当我运行测试时出现此错误:

无法加载目标的共享库“libgdx64.so”:Linux,64位

在这里读到我需要添加gdx-natives.jar. 这是正确的吗?在哪里可以找到该文件?

另外,我应该在项目中的哪里添加该文件?

java libgdx

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

在所有其他脚本之前运行 NPM 脚本

我正在寻找一种在使用时运行脚本的方法npm run <script-name>

我当前的用例是我想运行一个脚本,以确保在运行任何其他脚本之前正确设置开发环境。

所以,我需要的是这样的:

{
    "run-before-all-scripts": "./setup_environment.sh",
    "scripts": {
        "script_one": "do something",
        "script_two": "do somethingelse"
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想出的最好的办法是:

{
    "scripts": {
        "setup_environment": "./setup_environment.sh",
        "script_one": "npm run setup_environment && do something",
        "script_two": "npm run setup_environment && do somethingelse"
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想出的唯一更好的解决方案是围绕命令创建一个包装器 shell 脚本npm,这样我就可以调用fancy_npm_run <command>. 但这看起来有点混乱。

有更好的方法来处理这个问题吗?

我已经阅读了多个脚本上的 npm script hook,但它并不是在所有脚本之前运行,也没有得到答复。

node.js npm npm-scripts

5
推荐指数
0
解决办法
3206
查看次数