小编Whi*_*eyJ的帖子

如何使用moq来测试调用受保护助手的代码

我目前运行的测试如下所示:

// In Blah.cs
public class ClassUnderTest

{

    public bool MethodUnderTest()

    {

        // Do a bunch of stuff...

        return HelperMethod();

    }



    protected virtual bool HelperMethod()

    {

        bool success = false;

        // Proprietary Hardware Access.

        // Database Calls.

        // File System Modifications.

        return success;

    }

}


// In TestBlah.cs

public class TestStub : ClassUnderTest

{

    public bool HelperMethodReturnValue;



    protected override bool HelperMethod()

    {

        return HelperMethodReturnValue;

    }

}



[TestClass]

public class TestingClass

{

    [TestMethod]

    public void ClassUnderTest_MethodUnderTest_TestHelperReturnsTrue()

    {

        var stub = new …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq

11
推荐指数
1
解决办法
1万
查看次数

使用dapper通过MySql附加参数

我使用dapper将参数附加到MySql查询时遇到问题.现在这可能是一个愚蠢的问题,但是我现在已经在2小时的大部分时间里对此表示不满,但它仍然无法正常工作.

我的问题是在中间的SelectWithParametersTest()函数.这是我得到的......

编辑:更多细节.实际的Mysql服务器抛出拟合并说,"ERROR [07001] [MySQL] [ODBC 3.51驱动程序] [mysqld-5.1.61-0ubuntu0.11.10.1-log] SQLBindParameter不用于所有参数".

在QueryInternal <T>(...)执行读取器的行上捕获实际异常.(使用(var reader = cmd.ExecuteReader())

当我检查命令时没有附加参数,但是param对象(传递给函数)中有我的anon对象.

using System;
using System.Data;
using System.Collections.Generic;
using Dapper;

class Program
{
    static void Main(string[] args)
    {
        using (var dapperExample = new DapperExample())
        {
            //dapperExample.SelectTest();
            dapperExample.SelectWithParametersTest();
        }
    }
}

class DapperExample : IDisposable
{
    #region Fields
    IDbConnection _databaseConnection;
    #endregion

    #region Constructor / Destructor
    public DapperExample()
    {
        _databaseConnection = new System.Data.Odbc.OdbcConnection("DSN=MySqlServer;");
        _databaseConnection.Open();
    }

    public void Dispose()
    {
        if (_databaseConnection != null)
            _databaseConnection.Dispose();
    }
    #endregion

    #region Public …
Run Code Online (Sandbox Code Playgroud)

c# mysql dapper

5
推荐指数
1
解决办法
1796
查看次数

CsvHelper 不将数据写入内存流

CsvHelper 和写入内存流有一些问题。我试过刷新流写入器并设置位置以及其他所有尝试。我想我已经把它缩小到一个非常简单的测试用例,显然失败了。我在这里做错了什么?

public OutputFile GetTestFile()
{
    using (var ms = new MemoryStream())
    using (var sr = new StreamWriter(ms))
    using (var csv = new CsvWriter(sr))
    {
        csv.WriteField("test");
        sr.Flush();

        return new OutputFile
        {
            Data = ms.ToArray(),
            Length = ms.Length,
            DataType = "text/csv",
            FileName = "test.csv"
        };
    }
}

[TestMethod]
public void TestWritingToMemoryStream()
{
    var file = GetTestFile();
    Assert.IsFalse(file.Data.Length == 0);
}
Run Code Online (Sandbox Code Playgroud)

为人们在谷歌搜索中编辑正确答案,因为这个更正后的代码实际上通过了我的测试。我不知道为什么写入 StringWriter 然后将其转换为字节可以解决所有疯狂的刷新问题,但它现在可以工作了。

using (var sw = new StringWriter())
using (var csvWriter = new CsvWriter(sw, config))
{
    csvWriter.WriteRecords(records);
    return Encoding.UTF8.GetBytes(sw.ToString());
}
Run Code Online (Sandbox Code Playgroud)

c# csv export-to-csv csvhelper

5
推荐指数
1
解决办法
2212
查看次数

如何在 scala/cats-effect 中表达术语 F[_]

我正在学习 F[_] 作为其他类型的构造函数的概念,但是你如何向另一个人发音或在你的脑海中说出它(对于我们内部独白思考者)。

类似于“xx => x + 1x 加一”的官方语言,我的内心独白是如何解析的?def stream[F[_]: Async]: Stream[F, Nothing] = ...

编辑:我已经开始将其称为“Flunderscore”,但我非常担心,如果我继续这样做,我会搞砸并在专业环境中说出这样的话。请帮忙。

scala http4s cats-effect

5
推荐指数
1
解决办法
343
查看次数

如何在F#中区分联合的匹配

如何获取返回对象的函数的结果,并将其转换为F#中的区分联合?

问题场景,我正在使用selenium中的webdriver上的javascript执行器.文档指定输出应该是certian类型的对象或类型列表.(参考https://www.w3.org/TR/webdriver/#executing-script)

我想通过将它转换成一个有区别的联合来给返回的对象一些结构,以便我可以在以后匹配它.

直接转换不起作用,并且不允许联合类型具有构造函数,因此我也不能完全删除它.解决这个问题的正确方法是什么?

type JsResult = 
    | E of IWebElement
    | I of Int64
    | B of bool
    | S of String
    | LE of IWebElement list
    | LI of Int64 list
    | LB of bool list
    | LS of String list
    | N of Object
    override self.ToString () =
        match self with 
        | E e -> e.Text
        | I i -> i.ToString()
        | B b -> b.ToString() 
        | S s -> s
        | LE le -> …
Run Code Online (Sandbox Code Playgroud)

selenium f#

4
推荐指数
1
解决办法
90
查看次数

Roslyn 源生成器未在 .net 框架 4.7.2 中生成任何源

可能是一个简单的学习问题,但我正在尝试使用新的 roslyn 源生成器来自动生成 .net framework 4.7.2 的一些源代码(mvc 是目标,但如果它在我的测试控制台中工作,我会很高兴应用程序)。

这是我的代码

    [Generator]
    public class GenerateCommand : ISourceGenerator
    {
        public const string TestCode = @"
namespace Test
{
    public static class Hello
    {
        public static string World = ""Hi from generated code."";
    }
}";

        public void Initialize(InitializationContext context) { }

        public void Execute(SourceGeneratorContext context)
        {
            context.AddSource("Hint_Hello_World", SourceText.From(TestCode, Encoding.UTF8));
        }

        public void Test()
        {
            var x = Test.Hello.World;  // <-- Refuses to build.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

软件包版本是 Microsoft.CodeAnalysis.CSharp v 3.7.0(以及相关的 roslyn 内容)

这似乎和我能做到的一样简单,如果我的目标是 .net …

c# roslyn

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

标签 统计

c# ×4

cats-effect ×1

csv ×1

csvhelper ×1

dapper ×1

export-to-csv ×1

f# ×1

http4s ×1

moq ×1

mysql ×1

roslyn ×1

scala ×1

selenium ×1

unit-testing ×1