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

时间:2013-04-29 14:50:13

标签: unit-testing axapta x++ dynamics-ax-2012

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

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

我该怎么做?我在网上找到了任何帮助。

2 个答案:

答案 0 :(得分:1)

您是否尝试过测试类的setUp()和tearDown()方法?

http://msdn.microsoft.com/EN-US/library/bb496539.aspx

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

答案 1 :(得分:1)

自我学会了答案。

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

setUp(),setUpTestCase(),tearDown(),tearDownTestCase()是基类函数,用于在测试用例期间有意设置和销毁数据。

setUp()& tearDown()方法在开始时调用&分别为测试用例类中的每个测试函数结束。 注意,setUp(),tearDown()为每个测试函数运行一次,而setUpTestCase(),tearDownTestCase()只运行一次,分别用于开始和结束时的单元测试。


回到我的要求, 我不得不setup reason codes和编写测试用例的原因评论。

以下是执行此操作所需的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()函数,并将原因插入数据库。

这就是全部。希望它能在某个时间点帮助某人。

快乐。

  

~Shakir Shabbir