小编as.*_*ieu的帖子

Moq - 在设置的返回中使用 It.IsAny 时会发生什么?

我正在使用 Moq 在 C# 中执行单元测试。特别是一个测试,我创建了一个接口包装器,System.Net.Mail.SmtpClient以便可以模拟它。

public class SmtpClient : ISmtpClient
{
    public string Host { get; set; }
    public int Port { get; set; }
    public ICredentialsByHost Credentials { get; set; }
    public bool EnableSsl { get; set; }

    public void Send(MailMessage mail)
    {
        var smtpClient = new System.Net.Mail.SmtpClient
        {
            Host = Host,
            Port = Port,
            Credentials = Credentials,
            EnableSsl = EnableSsl
        };

        smtpClient.Send(mail);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我对这个包装器的测试中,为了确保Send()调用该方法,我模拟了接口,并且在设置模拟时,我使用Setup()为该对象的属性赋值。在所有文档中,我看到.Return()这些设置返回了这些方法期望的类型的特定值。但是,在我进一步理解之前,我改为It.IsAny<T>在返回中使用。

[ClassInitialize]
public static …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq

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

Golang,没有从HTML传递值

我正在尝试构建一个简单的双HandlerWeb服务器.在第一个处理程序中,我从两个字段中提取值,即用户的名字和姓氏.在第二个处理程序中,我只是说明了"Hello" (first name, last name).

我已经放了一个fmt.Println,似乎我没有正确地将信息从第一个Handler回到Go编程中.哪里出错了?

package main

import (
    "fmt"
    "html/template"
    "log"
    "net/http"
)

type Field struct {
    Firstname  string
    Secondname string
}

func RootHandler(w http.ResponseWriter, r *http.Request) {
    tmpl, err := template.ParseFiles("index.html")
    if err != nil {
        fmt.Println("Index Template Parse Error: ", err)
    }
    err = tmpl.Execute(w, nil)
    if err != nil {
        fmt.Println("Index Template Execution Error: ", err)
    }

}

func main() {
    http.HandleFunc("/", RootHandler) // sets router
    http.HandleFunc("/welcome", …
Run Code Online (Sandbox Code Playgroud)

html forms http go

3
推荐指数
1
解决办法
824
查看次数

正则表达式捕获外括号之间的所有内容

我正在尝试拆分 SQL 查询脚本,并且在创建表上,我只想要最外面括号内的内容,而忽略内部的任何括号,这些括号主要描述列类型的最大字符数。

这是我的查询示例:

CREATE TABLE IF NOT EXISTS %SCHEMA%.business (
    id UUID NOT NULL,
    name VARCHAR(50) NOT NULL,
    DBA VARCHAR(50),
    isactive BOOL NOT NULL DEFAULT TRUE,
    isdeleted BOOL NOT NULL DEFAULT FALSE,
    createdon TIMESTAMP(6) WITHOUT TIME ZONE NOT NULL
)
WITH (OIDS = FALSE)
Run Code Online (Sandbox Code Playgroud)

我想取回描述列的所有内容。我已经尝试过这些

\(([^\)]*)\) 
Run Code Online (Sandbox Code Playgroud)

在第一个 (50) 处停止,并读取另一个 (50) 和 (6),但不读取其他任何内容,并且不会到达外部括号的末尾。

\((\d+)\)
Run Code Online (Sandbox Code Playgroud)

这只会读取里面的括号,这稍后可能有用,但我只返回两个 (50) 和 (6)。

什么正则表达式可以捕获括号内的所有内容?即使它确实捕获了更多,我也可以稍后通过代码删除多余的字符串。

c# regex string

3
推荐指数
1
解决办法
341
查看次数

尝试使用 Golang 在命令行上解析标准输出

我正在练习使用 GoLang 将参数传递给命令行,并且能够从传递的结果中解析信息。例如,我的代码旨在执行命令,并显示无论如何通过 cmd 输入命令时将显示的内容。

package main

import (
    "bytes"
    "fmt"
    "os"
    "os/exec"
    "strings"
)

func main() {
    cmd = exec.Command("ping", "8.8.8.8")
    cmdOutput = &bytes.Buffer{}
    cmd.Stdout = cmdOutput
    printCommand(cmd)
    err = cmd.Run()
    printError(err)
    printOutput(cmdOutput.Bytes())
}

func printCommand(cmd *exec.Cmd) {
    fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))
}

func printError(err error) {
    if err != nil {
        os.Stderr.WriteString(fmt.Sprintf("==> Error: %s\n", err.Error()))
    }
}

func printOutput(outs []byte) {
    if len(outs) > 0 {
        fmt.Printf("==> Output: %s\n", string(outs))
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑到输出将是:

==> Executing: ping …
Run Code Online (Sandbox Code Playgroud)

command-line parsing go

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

Golang二进制搜索

我正在练习一种采访算法,现在用Go对其进行编码。目的是练习基本的面试算法以及Go的技能。我正在尝试对数字数组进行二进制搜索。

package main

import "fmt"

func main() {
    searchField := []int{2, 5, 8, 12, 16, 23, 38, 56, 72, 91}
    searchNumber := 23

    fmt.Println("Running Program")
    fmt.Println("Searching list of numbers: ", searchField)
    fmt.Println("Searching for number: ", searchNumber)

    numFound := false
    //searchCount not working. Belongs in second returned field
    result, _ := binarySearch2(searchField, len(searchField), searchNumber, numFound)
    fmt.Println("Found! Your number is found in position: ", result)
    //fmt.Println("Your search required ", searchCount, " cycles with the Binary method.")
}

func binarySearch2(a []int, field int, …
Run Code Online (Sandbox Code Playgroud)

binary-search go

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

C#"积分常量太大" - 对于Int32类型,整数变量太大

我正在构建一个ASP.NET Core API,它返回太阳系中的周期表和行星.主要是使用API​​调用,以及.NET中的数据类型.在Visual Studio 2017中构建它.

我在行星的质量属性方面存在问题,以千克为单位.显然是一个大整数,所以我尝试将它声明为long,Ulong,Int64甚至UInt64.但是,当我尝试进入一个行星的新模型并放入质量时,我收到以下错误:

struct System.Int32
Represents a 32 bit signed integer.
Integral constant is too large.
Run Code Online (Sandbox Code Playgroud)

这是我正在描述属性的PlanetModel.cs:

...
public UInt64 Volume { get; set; } //In Kilometers
public Int64 Mass { get; set; } //In Kilograms
public float Gravity { get; set; } //In m/s^2
...
Run Code Online (Sandbox Code Playgroud)

然而,当我转移到我的PlanetDataStore.cs时,我正在尝试使用数据构建对象.

new PlanetModel()
                {
                    Position = 1,
                    Name = "Mercury",
                    Distance = 57909050, //In Kilometers
                    Orbit = 0.240846F, //In years
                    SolarDay = 0.5F, //In Days
                    Radius = 2439, //In Kilometers
                    Volume …
Run Code Online (Sandbox Code Playgroud)

c# asp.net integer integer-overflow

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