我正在使用 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) 我正在尝试构建一个简单的双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) 我正在尝试拆分 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)。
什么正则表达式可以捕获括号内的所有内容?即使它确实捕获了更多,我也可以稍后通过代码删除多余的字符串。
我正在练习使用 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) 我正在练习一种采访算法,现在用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) 我正在构建一个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)