Intellitest在单元测试没有的情况下失败

时间:2015-12-16 23:21:26

标签: c# unit-testing dapper intellitest

我开始玩intellitest&单元测试,以了解它是如何工作的以及它最终看起来像什么。

所以我使用intellitest为我的一个类创建了测试,对于一个看起来像这样的方法:

public Advert Get(int advertId)
    {
        if (advertId > 0)
        {
            Advert advert = Manager.Instance.Advert.GetByid(advertId);
            if (advert != null)
            {
                advert.ItemsWanted = advert.GetItemsWanted(advert.Id);
                advert.UserItemsOffered = advert.GetUserItemsOffered(advert.Id);
            }
            return null;

        }
        return null;
    }

调用提供查询的简单方法,并返回以下内容:

public T GetObject<T>(object obj, string query)
{
    using (SqlConnection connection = GetConnection())
    {
        return connection.Query<T>(query, obj).FirstOrDefault();

    }
}

现在我使用MSTest创建了一个intellitest,如下所示:

[TestClass]
[PexClass(typeof(Advert))]
[PexAllowedExceptionFromTypeUnderTest(typeof(ArgumentException), AcceptExceptionSubtypes = true)]
[PexAllowedExceptionFromTypeUnderTest(typeof(InvalidOperationException))]
public partial class AdvertTest
{

    /// <summary>Test stub for Get(Int32)</summary>
    [PexMethod]
    public Advert GetTest([PexAssumeUnderTest]Advert target, int advertId)
    {
        Advert result = target.Get(advertId);
        return result;
        // TODO: add assertions to method AdvertTest.GetTest(Advert, Int32)
    }
}

当我运行这个intellitest时,它在第二次使用adsId为1时失败。 奇怪的是,如果我运行单元测试,它会单独生成它通过正常,我调试,它看起来都很好。

失败测试的堆栈跟踪在dapper.net文件中失败,位于

Identity..ctor(String, Nullable``1<CommandType>,String Type, Type[], int32) in Dapper NET40\SqlMapper.cs(980)

仅供参考:GetConnection是一种非静态方法,只返回我的连接字符串。

0 个答案:

没有答案