gpt4 book ai didi

ballerina - 模拟 nil 结果时测试失败

转载 作者:行者123 更新时间:2023-12-04 17:15:49 24 4
gpt4 key购买 nike

当尝试运行模拟 nil 返回值的测试时,出现以下错误。有什么想法吗?

function f1() returns string?|error {
return f2();
}

function f2() returns string?|error {
return "done";
}

// --tests
import ballerina/test;

@test:Mock {
functionName: "f2"
}
test:MockFunction mockF2 = new;

@test:Config
function shouldReturnNil() {
// arrange
test:when(mockF2).thenReturn(());

// act
string?|error result = f1();

// assert
if result is error {
test:assertFail(string `Expected nil, got error ${result.message()}`);
} else if result is string {
test:assertFail(string `Expected nil, got string ${result}`);
}
}

Error:
Running Tests
hello
[fail] shouldReturnNil:
{ballerina}TypeCastError {"message":"incompatible types: 'error' cannot be cast to '(any|ballerina/test:0.8.0:Error)'"}
at ballerina.test.0_8_0:mockHandler(mock.bal:378)
ppp.hello.0_1_0:f1(main.bal:2)
ppp.hello.0_1_0.tests.main_test:shouldReturnNil(tests/main_test.bal:14)
0 passing
1 failing
0 skipped

最佳答案

test:when(mockF2).thenReturn(());

不适用于“()”值。如果需要返回一个nil值,需要使用下面的方法。

test:when(mockF2).call("mockNilReturn");

您需要按如下方式定义“mockNilReturn”函数。

function mockNilReturn() returns string?|error {
return ();
}

关于ballerina - 模拟 nil 结果时测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68761338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com