标签: automated-tests

Android Studio 2.2中的Espresso测试录制功能

在Android Studio 2.2中应该有一个测试录音功能?我在哪里找到它以及如何使用它?

android automated-tests android-espresso android-studio-2.2 android-espresso-recorder

30
推荐指数
3
解决办法
8810
查看次数

自动测试游戏

你会如何为游戏添加自动化测试?

我相信你可以对很多游戏引擎的功能(网络,对象创建,内存管理等)进行单元测试,但是有可能自动测试实际的游戏本身吗?

我不是在谈论游戏元素(比如Protoss会在地图X中击败Zerg),但我在谈论游戏和引擎之间的互动.

介绍

在游戏开发中,引擎只是游戏的平台.您可以将游戏引擎视为操作系统,将游戏视为操作系统运行的软件.游戏可以是游戏引擎内的脚本集合或实际子程序.

可能的答案

我的想法是这样的:

你需要一个确定性的引擎.这意味着给定一组输入,输出将完全相同.这将包括用相同输入播种的随机发生器.

然后,创建一个裸骨水平,其中包含化身/用户可以与之交互的几个对象.从小处开始,然后在开发更多交互时将对象添加到关卡中.

创建一个遵循路径的脚本(测试路径查找)并与不同的对象交互(存储结果或预期的行为).这个脚本将是您的自动化测试.经过一段时间(比如一周)后,运行脚本以及引擎的单元测试.

automated-tests unit-testing

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

java的行为驱动开发 - 使用什么框架?

对于正在进行的项目和改进我们的开发过程,我们考虑采用TDD作为开发理念.在研究最佳实践以及如何向同事/开发人员"推销"新方法的过程中,我遇到了BDD,并发现它更适合我们需要的东西,并且不知何故是TDD的下一次迭代.问题是到目前为止我只尝试过Dan North,JBehave开发的工具,我不能说我很惊讶.

设置在我看来很麻烦,我找不到非常合适的文档.在另一方面我试着也斯波克的常规工具,到现在我挺喜欢.

问:有没有适合BDD的工具?
问:你会使用spock来处理引入另一种语言的开销吗?

testing bdd automated-tests jbehave spock

29
推荐指数
3
解决办法
3万
查看次数

自动化单元测试与自动化集成测试的优缺点是什么?

最近我们一直在为现有的Java应用程序添加自动化测试.

我们有什么

这些测试中的大部分都是集成测试,可能会覆盖一堆调用,如: -

  1. HTTP发布到servlet中
  2. servlet验证请求并调用业务层
  3. 业务层通过hibernate等做了很多东西,并更新了一些数据库表
  4. servlet生成一些XML,通过XSLT运行它以生成响应HTML.

然后,我们验证servlet是否使用正确的XML进行响应,并且数据库中存在正确的行(我们的开发Oracle实例).然后删除这些行.

我们还有一些较小的单元测试,用于检查单个方法调用.

这些测试都是我们夜间(或adhoc)构建的一部分.

问题

这似乎很好,因为我们正在检查系统的边界:一端是servlet请求/响应,另一端是数据库.如果这些工作正常,那么我们就可以自由地重构或混淆其中的任何东西,并且有信心被测试的servlet继续工作.

我们可能会遇到哪些问题?

我看不出如何在单个类上添加更多单元测试会有所帮助.难道这不会让重构变得更难,因为我们更有可能需要抛弃并重新编写测试吗?

integration-testing automated-tests unit-testing

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

测试和规格有什么区别?

我决定试用MiniTest并很快注意到它支持了一些名为"specs"的东西.我之前看过这些引用,但认为它只是与工厂相关的备用测试语法,但如果是这种情况那么为什么MiniTest需要同时支持它们呢?

当我学习Ruby on Rails时,我们只讨论过测试,所以我对规格一无所知.当我谷歌规格时,我发现很多关于如何写出好的东西,但没有解释它们什么.测试和规格有什么区别?

automated-tests unit-testing ruby-on-rails

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

如何在nodejs上使用mocha对控制台输出进行单元化?

考虑以下示例Javascript代码:

function privateFunction (time) {
  if (time < 12) { console.log('Good morning'); }
  if (time >= 12 && time <19) { console.log('Good afternoon'); }
  else { console.log('Good night!'); }
};
Run Code Online (Sandbox Code Playgroud)

我应该如何使用mocha(也可能是sinonjs)对nodejs进行单元测试,注意到这是一个在模块内部调用的私有函数?我需要传入参数并检查函数是否正在将正确的东西记录到控制台.

我可以用console.warnconsole.error吗?

automated-tests unit-testing mocha.js node.js sinon

27
推荐指数
3
解决办法
3万
查看次数

如何使用GNU autotools为"make check"创建测试

我正在使用GNU autotools来构建特定项目的构建系统.我想开始为验证编写自动化测试.我想输入"make check"让它自动运行这些.我的项目是用C++编写的,虽然我仍然对为其他语言编写自动化测试感到好奇.

这几乎与每个单元测试框架兼容(我在考虑使用cppunit)吗?如何将这些单元测试框架挂钩到make check中?我是否可以确保不需要安装单元测试软件来配置和构建项目的其余部分?

language-agnostic automated-tests unit-testing autotools

26
推荐指数
3
解决办法
1万
查看次数

TestNG依赖来自不同类的OnMethods

当要依赖的测试与具有此注释的测试的类相同时,注释的dependsOnMethods属性@Test可以正常工作.但是,如果待测试方法和依赖方法属于不同的类,则它不起作用.示例如下:

class c1 {
  @Test
  public void verifyConfig() {
    //verify some test config parameters
  }
}

class c2 {
  @Test(dependsOnMethods={"c1.verifyConfig"})
  public void dotest() {
    //Actual test
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个限制?一个简单的方法是在class c2该调用中创建一个测试c1.verifyConfig().但这将是太多的重复.

java testing junit testng automated-tests

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

Pytest:如果一个失败,如何跳过课堂上的其他测试?

我正在使用Jenkins,Python,Selenium2(webdriver)和Py.test框架为Web测试创建测试用例.

到目前为止,我正在组织以下结构的测试:

每个都是测试用例,每个test_方法都是一个测试步骤.

当一切正常时,这个设置很有效,但当一步崩溃时,其余的"测试步骤"变得疯狂.我可以借助于包含类(测试用例)中的失败teardown_class(),但是我正在研究如何改进它.

我需要的是以某种方式跳过(或xfail)test_一个类中的其余方法,如果其中一个失败,那么其余的测试用例不会运行并标记为FAILED(因为这将是误报)

谢谢!

更新:我不是在寻找或回答"这是不好的做法",因为这样称呼它是非常有争议的.(每个测试类都是独立的 - 这应该足够了).

更新2:在每个测试方法中放置"if"条件不是一个选项 - 是很多重复工作.我正在寻找的是(也许)有人知道如何使用类方法的钩子.

python automated-tests pytest selenium-webdriver

26
推荐指数
3
解决办法
2万
查看次数

使用Firebase进行单元测试

我正在构建一个Android应用程序,它使用Firebase作为后端和模型,视图,演示者架构.但是,Firebase是一项云服务这一事实使我的Android应用程序中的自动化测试变得复杂.到目前为止,我已经构建了大部分身份验证系统,但我无法看到如何在我的应用中为Firebase代码实现单元测试.在端到端测试方面,我也陷入困境.

由于测试是任何Android应用程序的基础,没有它应用程序开发人员无法确定他们已实现的功能是否按预期运行,如果没有自动化测试,我无法真正进一步发展.

总之,我的问题是:

通常,如何在Android应用程序中实现Firebase自动化测试?

编辑:

作为一个例子,有人可以单独测试以下方法吗?

public void addUser(final String name, final String birthday,
                        final String email, final String password) {
        Firebase mUsersNode = Constants.mRef.child("users");
        final Firebase mSingleUser = mUsersNode.child(name);
        mSingleUser.runTransaction(new Transaction.Handler() {
            @Override
            public Transaction.Result doTransaction(MutableData mutableData) {

                mSingleUser.child("birthday").setValue(birthday);
                mSingleUser.child("email").setValue(email);
                mSingleUser.child("password").setValue(password);
                return Transaction.success(mutableData);
            }

            @Override
            public void onComplete(FirebaseError firebaseError, boolean b, DataSnapshot dataSnapshot) {
                if(firebaseError != null) {
                        mSignUpPresenter.addUserFail(firebaseError);
                    } else {
                        mSignUpPresenter.addUserComplete();
                }
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

android integration-testing automated-tests unit-testing firebase

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