我目前运行的测试如下所示:
// 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) 我使用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) 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) 我正在学习 F[_] 作为其他类型的构造函数的概念,但是你如何向另一个人发音或在你的脑海中说出它(对于我们内部独白思考者)。
类似于“x到x => x + 1x 加一”的官方语言,我的内心独白是如何解析的?def stream[F[_]: Async]: Stream[F, Nothing] = ...
编辑:我已经开始将其称为“Flunderscore”,但我非常担心,如果我继续这样做,我会搞砸并在专业环境中说出这样的话。请帮忙。
如何获取返回对象的函数的结果,并将其转换为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) 可能是一个简单的学习问题,但我正在尝试使用新的 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 …