小编1pp*_*pCH的帖子

单元测试Windows.Web.Http HttpClient与模拟的IHttpFilter和IHttpContent,MockedHttpFilter抛出System.InvalidCastException

我有一个类依赖于Windows.Web.Http(Windows 10 UAP App)中的HttpClient.我想进行单元测试,因此我需要"模拟"HttpClient来设置Get-Call应返回的内容.我开始使用HttpClient进行"简单"的单元测试,使用手写模拟的IHttpFilter和IHttpContent.它没有按预期工作,我在Test-Explorer中得到一个InvalidCastException.

单元测试看起来像:

    [TestMethod]
    public async Task TestMockedHttpFilter()
    {
        MockedHttpContent mockedContent = new MockedHttpContent("Content from MockedHttpContent");
        MockedHttpFilter mockedHttpFilter = new MockedHttpFilter(HttpStatusCode.Ok, mockedContent);

        HttpClient httpClient = new HttpClient(mockedHttpFilter);
        var resultContentTask = await httpClient.SendRequestAsync(new HttpRequestMessage(HttpMethod.Get, new Uri("http://dontcare.ch"))).AsTask().ConfigureAwait(false);
        // Test stops here, throwing System.InvalidCastException: Specified cast is not valid

        // Code not reached...
        var result = await resultContentTask.Content.ReadAsStringAsync();
        Assert.AreEqual("Content from MockedHttpContent", result);
    }
Run Code Online (Sandbox Code Playgroud)

我在MockedHttpFilter中实现了IHttpFilter:

public class MockedHttpFilter : IHttpFilter
{
    private HttpStatusCode _statusCode;
    private IHttpContent _content;

    public MockedHttpFilter(HttpStatusCode statusCode, IHttpContent content) …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing win-universal-app windows-10

13
推荐指数
1
解决办法
534
查看次数

GraphDB Free 8.8 Sparql INSERT 返回 400。不支持 INSERT?

我正在使用 GraphDB Free,并且正在尝试使用 sparql 将一些三元组插入到商店中。查询看起来像一个简单的 INSERT:

//Some Prefixes
INSERT DATA { subject predicate object }
Run Code Online (Sandbox Code Playgroud)

我使用 Postman 将请求正文中的查询 POST 到 SPARQL 端点,并使用 dotNetRdf 将查询提交到代码中的 SPARQL 端点。

我在上述两种方式中都收到以下错误:

MALFORMED QUERY: Encountered " "insert" "INSERT "" at line 5, column 1.
Was expecting one of:
    "base" ...
    "prefix" ...
    "select" ...
    "construct" ...
    "describe" ...
    "ask" ...
Run Code Online (Sandbox Code Playgroud)

在 SPARQL 表单中的 Workbench 中提交相同的 INSERT DATA { ... } 时按预期工作,因此 INSERT 没问题。

在文档GraphDB Sparql Comliance中提到支持 SPARQL 1.1 更新(包括插入数据)。Sparql 端点是否不支持提到的 Spaqrl 1.1 UPDATE …

sparql graphdb

2
推荐指数
1
解决办法
379
查看次数