我在通过此测试时遇到问题。问题是,Write()
我的结构体中的方法需要写入属性,但io.Writer
接口不接受指针作为其接收者。
filelogger.go:
package logger
import (
"io"
)
type FileLogger struct{
File io.Writer
}
func NewFileLogger(file io.Writer) *FileLogger{
return &FileLogger{file}
}
func (this *FileLogger) Log(message string) error {
_, err := this.File.Write([]byte(appendNewLine(message)))
return err
}
filelogger_test.go:
package logger
import (
"testing"
"github.com/stretchr/testify/assert"
)
type WriterMock struct{
data []byte
}
func (this WriterMock) Write(b []byte) (n int, err error) {
this.data = append(this.data, b ...)
return len(this.data), nil
}
func NewMockedFileLogger() *FileLogger{
writer := WriterMock{}
fileLogger := FileLogger{writer}
return &fileLogger
}
func TestLog(t *testing.T) {
fileLogger := NewMockedFileLogger()
fileLogger.Log("Hello World!")
assert.Equal(t, "Hello World!", string(fileLogger.File.(WriterMock).data))
}
测试输出:
--- FAIL: TestLog (0.00 seconds)
Location: filelogger_test.go:32
Error: Not equal: "Hello World!" (expected)
!= "" (actual)
FAIL
正如我提到的,data []byte
不会被写入,因为我无法将函数接收器设置为指针,因为它不能满足io.Writer
。
如果继续使用一个 指针 来WriterMock
,它应该工作:
func NewMockedFileLogger() *FileLogger{
writer := &WriterMock{}
fileLogger := FileLogger{writer}
return &fileLogger
}
然后:
assert.Equal(t, "Hello World!", string(fileLogger.File.(*WriterMock).data))
我错过了:
func (this *WriterMock) Write(b []byte) (n int, err error) {
...
}
您需要调用Write()
指针接收器,而不是值接收器。
由于所有内容都是通过Go中的值传递的,因此使用值接收器将 复制 该WriterMock
实例。
如何通过不同的测试数据在Playwright测试运行测试?比如从CSV文件发送测试数据?
我尝试使用MockMVC和TestRestTemboard。在这两种情况下,返回的响应都是404,但是APIendpoint在集成测试之外工作(当我自己运行Spring应用时)。 有没有人有一个可以工作的示例应用程序,它使用SpringDataREST对生成的控制器进行了工作集成测试? 我还可以编写针对自己控制器的常规集成测试(非SDR类型) 测试代码: 回购: 好的,我发现了问题,但我不知道答案
问题内容: 我们使用“grandor”测试内部AngularJS应用程序。 除了功能测试之外,我们还可以在 是什么 基于nodejs 图书馆。“因为是表演 功能“. 使用“detactor perf”,我们可以测量和断言不同的性能 进行浏览器操作时的特征,针对 示例: 现在,对于另一个内部应用程序,我们有一组基于硒的测试 用Python编写。 是否可以使用selenium python检查性能回归
主要内容:功能测试的目标功能测试是软件测试的一个分支,旨在验证软件应用程序的功能,而不管功能是否根据需求规范运行。通过给出适当的输入值,确定输出并使用预期输出验证实际输出来测试每个功能。 功能测试包括通过GUI(图形用户界面),API(应用程序接口),安全性,数据库,客户端应用程序,服务器应用程序和应用程序功能进行测试。黑盒测试方法用于功能测试,其中测试内部逻辑的工作而不窥视内部代码。 功能测试的目标 功能测试的目标是检
性能测试应该有两个方向: 单接口压力测试 生产环境模拟用户操作高压力测试 生产环境模拟测试,目前我们都是交给公司的 QA 团队专门完成的。这块我只能粗略列举一下: 获取 1000 用户以上生产用户的访问日志(统计学要求 1000 是最小集合) 计算指定时间内(例如 10 分钟),所有接口的触发频率 使用测试工具(loadrunner, jmeter 等)模拟用户请求接口 适当放大压力,就可以模拟
功能测试从用户的角度验证场景。它类似于验收测试。 但是它不是通过 HTTP 进行通信,而是填充环境,如(填充)POST 和 GET 参数, 然后直接在代码里执行 Application 实例。 功能测试通常比验收测试快,并且在失败时提供详细的堆栈跟踪。 根据老司机的经验,功能测试应该是首选的,除非有专门的 Web 服务器设置 或者由 JavaScript 构建的复杂 UI。 功能测试是借助于具有良