首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试Db4oTool仪器(集合)

单元测试Db4oTool仪器(集合)
EN

Stack Overflow用户
提问于 2012-01-09 21:32:15
回答 1查看 101关注 0票数 3

我正在使用db4oTool来测试我的类,以实现透明的激活/持久性。我正在使用-ta和-collections交换机。

我知道如何通过下面的测试来检查类本身是否被正确地检测了。

代码语言:javascript
复制
Assert.IsTrue(typeof(IActivatable).IsAssignableFrom(typeof(Machine)), "Machine class not instrumented");

参考资料:http://community.versant.com/Documentation/Reference/db4o-8.0/net35/reference/Content/basics/transparentpersistence/ta_enhanced_example.htm

但是,我不知道如何检查我的集合是否被正确地检测。

给定以下机器类:

代码语言:javascript
复制
public class Machine : DomainBase
    {
        private string _machineId;

        public string MachineId
        {
            get { return _machineId; }
            set { _machineId = value; }
        }


        public IList<EnergyTag> EnergyTags { get; set; }

        public void AddEnergyTag(EnergyTag energyTag)
        {
            if (energyTag.Machine == null)
                energyTag.Machine = this;
            if (EnergyTags == null)
                EnergyTags = new List<EnergyTag>();
            EnergyTags.Add(energyTag);
        }

    }

如何测试EnergyTags集合是否已被正确地检测?

编辑:

解决方案:

代码语言:javascript
复制
var machine = new Machine();                                                        
Assert.IsTrue(machine.EnergyTags.GetType().Equals(typeof(ActivatableList<EnergyTag>)));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-10 01:24:04

您可以检查具体类型的EnergyTags

代码语言:javascript
复制
using System.Collections.Generic;

public class Item
{
    private IList<Item> l = new List<Item>();

    public IList<Item> Items
    {
        get { return l; }

        set { l = value; }
    }

    public static void Main()
    {
        System.Console.WriteLine("Type: {0}", new Item().Items.GetType().FullName);
    }   
}

将输出类似以下内容:

类型: Db4objects.Db4o.Collections.ActivatableList`1[Item,ActivatableCollections,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null]

因此,您可以按名称(如果您在模型中没有对db4o程序集的引用)检查,也可以按其他类型进行检查。

请记住,这个名称(ActivatableList)是一个实现细节,可能会在未来的db4o版本中发生变化。

最好的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8795487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档