相关疑难解决方法(0)

假装,嘲弄和捣蛋有什么区别?

我知道我如何使用这些术语,但我想知道是否有单独测试的伪造,模拟存根的可接受定义?你如何为你的测试定义这些?描述您可能使用每种情况的情况.

以下是我如何使用它们:

:一个实现接口但包含固定数据而没有逻辑的类.根据实施情况,简单地返回"好"或"坏"数据.

Mock:一个实现接口的类,允许动态设置值以返回/异常从特定方法抛出,并提供检查是否已调用/未调用特定方法的功能.

存根:类似于模拟类,但它不提供验证方法是否已被调用/未调用的能力.

模拟和存根可以由模拟框架手动生成或生成.伪造的类是手工生成的.我主要使用模拟来验证我的类和依赖类之间的交互.一旦我验证了交互并且正在通过我的代码测试备用路径,我就会使用存根.我主要使用假类来抽象出数据依赖性,或者每次使用模拟/存根都太繁琐.

unit-testing terminology mocking stub definition

650
推荐指数
11
解决办法
17万
查看次数

487
推荐指数
6
解决办法
21万
查看次数

验收测试和功能测试之间的区别?

验收测试和功能测试之间的真正区别是什么?

每个的亮点或目标是什么?我读到的每个地方都模糊不清.

testing acceptance-testing functional-testing

138
推荐指数
5
解决办法
10万
查看次数

集成测试和功能测试有什么区别?

功能测试和集成测试是否相同?

您通过单元测试开始测试,然后在完成单元测试后,您将进行集成测试,从而对整个系统进行测试.功能测试与集成测试相同吗?您仍然将整个系统作为一个整体并对其进行功能一致性测试.

testing

123
推荐指数
5
解决办法
7万
查看次数

Android Instrumentation测试和Android Studio中的单元测试之间的区别?

从Android Studio 1.1rc开始,有单元测试支持,我想知道Android Instrumentation测试和单元测试之间有什么区别.

据我了解:
单元测试对于测试不调用Android API的代码非常有用,而Android测试测试则是集成测试,用于测试Android API特定元素或GUI组件.

但是,如果你在单元测试中使用像RobolectricMockito这样的框架,你可以测试Android代码(不需要设备)如果我没有弄错的话.


这是正确的,还是有更大的区别?如果是这样,每个人的用途是什么?

testing android integration-testing unit-testing android-studio

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

单元测试或功能测试?

我最近听说过单元测试的功能测试.

我知道单元测试从最原子的形式测试给定代码片段的每种可能性.但功能测试怎么样?

这听起来像只测试代码是否有效,但它是否像单元测试一样可靠?

我被告知有两个关于这个问题的学校.某些人更喜欢单元测试,其他人更喜欢功能测试.

有没有什么好的资源,链接,书籍,任何参考文献或者你们中的任何一个能够解释和完善我的主题的人?

谢谢!

.net unit-testing functional-testing testdrivendesign

27
推荐指数
4
解决办法
5803
查看次数

困惑:省略与单元测试相同的功能测试?

我正在努力弄清楚应该从功能测试中排除什么(在我的情况下,使用Rails,但我想框架可能无关紧要).

我的印象是我不应该使用功能测试来处理将在单元测试中捕获的内容 - 例如检查字段不能包含太多字符,或者字段不能为空.如果是这种情况,应该通过功能测试来测试哪些突发事件,和/或将其他人仅用于单元测试的经验法则是什么?

或者这种印象一开始是不正确的?

我看过 这个这个, 但我仍然不知所措.

unit-testing functional-testing

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

功能测试和端到端测试之间的区别

功能测试和端到端测试有什么区别?

Techopedia说端到端测试是

用于测试应用程序流程是否按照设计从头到尾执行的方法.执行端到端测试的目的是识别系统依赖性并确保在各种系统组件和系统之间传递正确的信息.

Techopedia还说了以下关于功能测试:

功能测试是在软件开发中使用的软件测试过程,其中测试软件以确保其符合所有要求.功能测试是一种检查软件的方法,以确保它具有在其功能要求中指定的所有必需功能.

阅读完上述两段后,我仍然对它们之间的区别感到困惑.

我有一个接受请求的node.js应用程序,然后解析请求,然后将解析后的数据发送到数据库.

        requests               parse requests and send data to the database  

Client ---------> node.js app --------------------------------------------> Database
Run Code Online (Sandbox Code Playgroud)

如何为我提到的node.js应用程序编写端到端测试和功能测试?

我认为在两种类型的测试中,我都应该将node.js应用程序视为黑盒子.并向它发送请求.然后检查黑匣子的输出是否正确.

在我看来,功能测试和端到端测试之间没有区别.

testing functional-testing end-to-end

9
推荐指数
2
解决办法
3394
查看次数

在 Python 中测试私有方法:单元测试还是功能测试?

在阅读了关于在 Python 中测试私有方法的内容后,具体参考以下接受的答案:如何对方法对象中的方法进行单元测试?,看来最好只测试公共接口。但是,我的班级看起来像这样:

class MyClass:

  def __init__(self):
    # init code

  def run(self):
    self.__A()
    self.__B()
    self.__C()
    self.__D()

  def __A(self):
    # code for __A

  def __B(self):
    # code for __B

  def __C(self):
    # code for __C

  def __D(self):
    # code for __D
Run Code Online (Sandbox Code Playgroud)

本质上,我创建了一个类,用于通过函数管道处理一些输入数据。在这种情况下,最好测试私有函数而不测试公共run()函数吗?做这个的最好方式是什么?

python unit-testing

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

如何测试Spring @Transactional而不仅仅是打击hibernate 1级缓存或进行手动会话刷新?

使用Spring + Hibernate和事务注释.

我正在尝试测试以下内容:

  1. 调用一个方法来更改User对象,然后调用一个@Transactional服务方法来持久化它
  2. 从数据库中读取对象并确保在方法之后它的值是正确的

我遇到的第一个问题是在步骤2中读取User对象,只返回Hibernate 1级缓存中的那个,并且实际上没有从数据库中读取.

因此,我使用Session手动从缓存中驱逐对象以强制从数据库读取.但是,当我这样做时,对象值永远不会在单元测试中持久存在(我知道在测试完成后它会因为我指定的设置而回滚).

我尝试在调用@Transactionalservice方法后手动刷新会话,并且DID提交更改.但是,这不是我的预期.我认为@Transactional服务方法可以确保事务已提交并且会话在返回之前刷新.我知道Spring一般会决定何时进行这种管理,但我认为方法中的"工作单元" @Transactional就是这种方法.

无论如何,现在我想弄清楚我将如何测试@Transactional一般的方法.

这是一个失败的junit测试方法:

@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@TransactionConfiguration(transactionManager = "userTransactionManager", defaultRollback = true)
@WebAppConfiguration()
@ContextConfiguration(locations = { "classpath:test-applicationContext.xml",
        "classpath:test-spring-servlet.xml",
        "classpath:test-applicationContext-security.xml" })
public class HibernateTest {

    @Autowired
    @Qualifier("userSessionFactory")
    private SessionFactory sessionFactory;

    @Autowired
    private UserService userService;

    @Autowired
    private PaymentService paymentService;

    @Autowired
    private QueryService queryService;

    @Autowired
    private NodeService nodeService;

    @Autowired
    private UserUtils userUtils;

    @Autowired
    private UserContext userContext;

  @Test
    public void testTransactions() {
        // read the user …
Run Code Online (Sandbox Code Playgroud)

spring hibernate sessionfactory transactional transactionmanager

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

DUnit无法创建表单.目前没有MDI表单处于活动状态

嘿,我在Delphi XE3中的单元测试有问题我有一个项目,包含1个MDIForm和分配MDIChild表单然后问题是,当我在我的MDIChild表单上运行测试时,我收到此错误:

TestAllDataSrouces: EInvalidOperation
at  $0064346F
SetUp FAILED: Cannot create form. No MDI forms are currently active
Run Code Online (Sandbox Code Playgroud)

我的安装方法如下所示:

procedure TestTCustomerCard.SetUp;
begin
  FCustomerCard :=  TCustomerCard.Create(Application);
end;
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个错误?到目前为止我试过:

FCustomerCard :=  TCustomerCard.Create(Application.MainForm);

FCustomerCard :=  TCustomerCard.Create(nil);
Run Code Online (Sandbox Code Playgroud)

procedure TestTCustomerCard.SetUp;
var
  a : TForm;
begin
  a := TForm.Create(nil);
  a.FormStyle := fsMDIForm;
  FCustomerCard :=  TCustomerCard.Create(a);
end;
Run Code Online (Sandbox Code Playgroud)

我的测试是:

procedure TestTCustomerCard.TestAllDataSrouces;
var
  I: Integer;
begin
  for I := 0 to FCustomerCard.ComponentCount-1 do
  begin
    if (FCustomerCard.Components[i] is TcxLookupComboBox) then
    begin
      Check(TcxLookupComboBox(FCustomerCard.Components[i]).Properties.ListSource = nil,'Error no ListSource, Lookup: '+TcxLookupComboBox(FCustomerCard.Components[i]).Name+' Parent: '+TcxLookupComboBox(FCustomerCard.Components[i]).Parent.Name); …
Run Code Online (Sandbox Code Playgroud)

delphi mdi unit-testing dunit delphi-xe3

4
推荐指数
1
解决办法
1844
查看次数

PHPUnit - PHP 致命错误:在 null 上调用成员函数 GetOne()

我今天开始在 PhpStorm 上使用 PHPUnit 测试。我可以测试几乎所有的功能,除了需要数据库连接的功能。

功能:

public function getProductID()
{
     $this->product_id = $this->db->GetOne("select product_id from table1 where id = {$this->id}");
     return $this->product_id['product_id'];
}
Run Code Online (Sandbox Code Playgroud)

在我的测试用例中,出现错误:

PHP 致命错误:在 null 上调用成员函数 GetOne()

我已经定义:

global $_db;
$this->db = $_db;
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing

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