草庐IT

unit_count

全部标签

mongodb - 在 MongoDB 的 pymongo 中,我该如何做 count()?

forpostindb.datasets.find({"test_set":"abc"}).sort("abc",pymongo.DESCENDING).skip((page-1)*num).limit(num):我如何获得count()? 最佳答案 如果您使用的是pymongo3.7.0或更高版本,seethisanswer而是。如果您希望results_count忽略您的limit():results=db.datasets.find({"test_set":"abc"}).sort("abc",pymongo.DESCENDI

C++设置: counting elements less than a value

假设我有一个STLsets和intx,如何计算s中的元素个数小于x?我正在寻找O(logn)(或类似的;任何比O(n)更好的东西)解决方案;我已经知道std::distance(s.begin(),s.lower_bound(x)),但那是O(n),我相信,因为sets不是随机访问。 最佳答案 您需要的是“订单统计树”。它本质上是一个增强的(二分搜索)树,支持附加操作rank(x),它为您提供具有小于或等于元素x的键的元素数量。第14章,Cormen、Leiserson、Rivest、Stein;“算法简介”应该为您提供算法背景。w

c++ - 术语 "source file"和 "translation unit"之间有什么区别?

源文件和翻译单元有什么区别? 最佳答案 来自C++标准:Asourcefiletogetherwithalltheheadersandsourcefilesincludedviathepreprocessingdirective#includelessanysourcelineskippedbyanyoftheconditionalinclusionpreprocessingdirectivesiscalledatranslationunit. 关于c++-术语"sourcefile"和

c++ - 为什么 C++ 标准算法 "count"会返回一个 difference_type 而不是 size_t?

为什么返回类型是std::countdifference_type迭代器(通常是ptrdiff_t)。由于计数永远不会是负数,所以size_t技术上正确的选择?如果计数超出ptrdiff_t的范围怎么办?因为数组的理论可能大小可以是size_t?编辑:到目前为止,对于函数返回ptrdiff_t的原因,还没有合适的答案。.从下面的答案中收集到的一些解释是返回类型是iterator_traits::difference_type这是通用的,可以是任何东西。直到那时,它才有意义。在某些情况下,计数可能会超过size_t.但是,返回类型为什么是typedefptrdiff_titerator_

unit-testing - 如何对 Go 错误进行单元测试

当您对具有error返回类型的函数进行单元测试时,我想知道如何正确地对该错误进行单元测试。您是否应该只检查错误是否为零?或者您是否应该验证错误字符串也与预期字符串匹配? 最佳答案 在大多数情况下,您只需检查错误是否不为零。除非绝对必要,否则我建议不要检查错误字符串。我通常认为错误字符串仅供人类使用。如果您需要有关错误的更多详细信息,一种更好的选择是自定义错误类型。然后您可以切换err.(type)并查看它是否是您期望的类型。如果您需要更多详细信息,可以使自定义错误类型包含值,然后您可以在测试中检查这些值。Go的错误只是具有Error

unit-testing - 在 Golang 中测试 HTTP 路由

我正在使用Gorillamux和net/http包创建一些路由,如下所示packageroutes//someimports//somestufffuncAddQuestionRoutes(r*mux.Router){s:=r.PathPrefix("/questions").Subrouter()s.HandleFunc("/{question_id}/{question_type}",getQuestion).Methods("GET")s.HandleFunc("/",postQuestion).Methods("POST")s.HandleFunc("/",putQuestio

unit-testing - 如何测试永远循环的代码

我有一个应用程序(epazote),一旦启动就永远运行,但我想在它阻塞/等待直到按下ctrl+c之前测试一些值或被杀了。这是一个小例子:http://play.golang.org/p/t0spQRJB36packagemainimport("fmt""os""os/signal")typeIAddStringinterface{AddString(string)}typeaddStringstruct{}func(self*addString)AddString(sstring){fmt.Println(s)}funcblock(aIAddString,sstring){//test

unit-testing - 在 Go 中测试不带 sleep 的异步结果

我的代码中有相当多的组件具有持久的go-routines,它们监听事件以触发操作。大多数情况下,他们没有理由(在测试之外)在完成该操作后发回通知。但是,我的单元测试使用sleep来等待这些异步任务完成://Sendnotificationevent.mock.devices这似乎很糟糕,但我还没有想出一个更好的解决方案,它不会给非测试使用增加不合理的开销。有没有我错过的合理解决方案? 最佳答案 惯用的方法是将donechannel与您的数据一起传递给工作程序go-routine。go-routine应该closedonechanne

unit-testing - 如何在 golang 中测试 io.writer?

最近希望为golang写一个单元测试。函数如下。func(s*containerStats)Display(wio.Writer)error{fmt.Fprintf(w,"%s%s\n","hello","world")returnnil}那么如何测试“funcDisplay”的结果是“helloworld”呢? 最佳答案 您可以简单地传入您自己的io.Writer并测试写入其中的内容是否符合您的预期。对于这样的io.Writer,bytes.Buffer是一个不错的选择,因为它只是将输出存储在其缓冲区中。funcTestDispl

unit-testing - 为从中读取的函数填充 os.Stdin

如何在我的测试中填写os.Stdin以获取使用扫描仪从其中读取的函数?我使用以下功能通过扫描仪请求用户命令行输入:funcuserInput()error{scanner:=bufio.NewScanner(os.Stdin)println("Whatisyourname?")scanner.Scan()username=scanner.Text()/*...*/}现在如何测试这种情况并模拟用户输入?以下示例不起作用。标准输入仍然是空的。funcTestUserInput(t*testing.T){varfile*os.Filefile.Write([]byte("Tom"))os.S