Unit testing 单元测试框架中setupTestcase的设置原因代码[AX 2012]

Unit testing 单元测试框架中setupTestcase的设置原因代码[AX 2012],unit-testing,axapta,x++,dynamics-ax-2012,Unit Testing,Axapta,X++,Dynamics Ax 2012,我正在对话框表单中使用原因码条目 为了编写上述单元测试,我需要首先通过Dynamics AX 2012中UnitTestFramework中setUpTestCase中的代码动态插入reasonCodes 我该怎么做?我还没有在internet上找到任何帮助。您在测试类上尝试过setUp()和tearDown()方法吗 您可以在测试类执行之前创建数据,并在测试结束时删除数据。自学答案 为了使用UnitTestFramework编写单元测试,您需要创建一个扩展SysTestCase类(系统类)的

我正在对话框表单中使用原因码条目

为了编写上述单元测试,我需要首先通过Dynamics AX 2012中UnitTestFramework中setUpTestCase中的代码动态插入reasonCodes

我该怎么做?我还没有在internet上找到任何帮助。

您在测试类上尝试过setUp()和tearDown()方法吗

您可以在测试类执行之前创建数据,并在测试结束时删除数据。

自学答案

为了使用UnitTestFramework编写单元测试,您需要创建一个扩展SysTestCase类(系统类)的类

setUp()、setUpTestCase()、tearDown()、tearDownTestCase()是基类函数,用于在测试过程中设置和销毁数据,以便测试用例。

private void createReason(str _reasonCode, str _reasonComment)
{
    ReasonTable         _reasonTable;

    _reasonTable.clear();
    _reasonTable.Asset = NoYes::Yes;
    _reasonTable.Ledger = NoYes::Yes;
    _reasonTable.Reason = _reasonCode;
    _reasonTable.Description = _reasonComment;

    _reasonTable.doInsert();
}
对于测试用例类中的每个测试函数,分别在开始和结束时调用setUp()和tearDown()方法。 注意,setUp()、tearDown()对于每个测试函数运行一次,而setUpTestCase()、tearDownTestCase()对于单元测试在开始和结束时仅运行一次。

private void createReason(str _reasonCode, str _reasonComment)
{
    ReasonTable         _reasonTable;

    _reasonTable.clear();
    _reasonTable.Asset = NoYes::Yes;
    _reasonTable.Ledger = NoYes::Yes;
    _reasonTable.Reason = _reasonCode;
    _reasonTable.Description = _reasonComment;

    _reasonTable.doInsert();
}

回到我的问题上来, 我必须
设置原因代码
以及编写测试用例的原因注释

Example, you might wamt to set
    _reasonTable.Asset = NoYes::No;
instead of
    _reasonTable.Asset = NoYes::Yes;
以下是执行此操作所需的X++代码。

private void createReason(str _reasonCode, str _reasonComment)
{
    ReasonTable         _reasonTable;

    _reasonTable.clear();
    _reasonTable.Asset = NoYes::Yes;
    _reasonTable.Ledger = NoYes::Yes;
    _reasonTable.Reason = _reasonCode;
    _reasonTable.Description = _reasonComment;

    _reasonTable.doInsert();
}
您可能有不同的设置来设置测试用例中的原因

Example, you might wamt to set
    _reasonTable.Asset = NoYes::No;
instead of
    _reasonTable.Asset = NoYes::Yes;
在setUpTestCase()中调用createReason()函数,并将原因插入数据库。

private void createReason(str _reasonCode, str _reasonComment)
{
    ReasonTable         _reasonTable;

    _reasonTable.clear();
    _reasonTable.Asset = NoYes::Yes;
    _reasonTable.Ledger = NoYes::Yes;
    _reasonTable.Reason = _reasonCode;
    _reasonTable.Description = _reasonComment;

    _reasonTable.doInsert();
}
就这些。希望它能在某个时候帮助某人

要快乐

~Shakir Shabbir


是的,我知道这些方法。但我想知道,我们如何在资产的推理表中插入理由。