小编Fre*_*rej的帖子

如何使用Moq使用存根单元测试Windows Azure表查询?

我无法使我的单元测试正常工作.它适用于我实际遇到Azure表存储的集成测试.我猜的问题是对属性QueryableEntities的模拟,它从mock中重新构造了一个Queryable,但它从ServiceContext类返回一个DataServiceQuery.是否可以创建一个返回Queryable的DataServiceQuery类型的存根?

这是我的代码:

测试

[TestMethod]
    public void GetAExistingWordInStorageShouldReturnCorrectWord()
    {

        Word expected = new Word(Dictionaries.Swedish.ToString(), "Word", "Word");

        List<Word> Words = new List<Word>();
        Words.Add(new Word(Dictionaries.Swedish.ToString(), "Word", "Word"));

        IQueryable<Word> WordQueryable = Words.AsQueryable<Word>();

        var mock = new Mock<IServiceContext<Word>>();
        mock.Setup(x => x.QueryableEntities).Returns(WordQueryable);

        DictionaryRepository dr = new DictionaryRepository(Models.Dictionaries.Swedish, "testdictionaries");
        dr.Context = mock.Object;

        Word result = dr.GetWord(expected.Text, false);

        Assert.AreEqual(expected, result);
    }
Run Code Online (Sandbox Code Playgroud)

IServiceContect接口

public interface IServiceContext<TEntity>
{
    IQueryable<TEntity> QueryableEntities {get;}
}
Run Code Online (Sandbox Code Playgroud)

ServiceContext类

public class ServiceContext<TEntity> : TableServiceContext, IServiceContext<TEntity> where TEntity : TableServiceEntity
{ …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq azure-table-storage

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

标签 统计

azure-table-storage ×1

c# ×1

moq ×1

unit-testing ×1